双精度相加.asm

来自「这是一个汇编上机测试的题目」· 汇编 代码 · 共 44 行

ASM
44
字号
  D_SEG   SEGMENT     
          AUGEND       DD     99251D     
          SUM          DD     ?     
  D_SEG   ENDS     
    
  E_SEG   SEGMENT     
          ADDEND     DD     -15962D     
  E_SEG   ENDS     
    
  C_SEG   SEGMENT     
          ASSUME   CS:C_SEG,   DS:D_SEG,   ES:E_SEG     
  MAIN   PROC   FAR     
  START:     
          MOV   AX,   D_SEG     
          MOV   DS,   AX     
          MOV   AX,   E_SEG     
          MOV   ES,   AX     
          MOV   AX,   word   ptr     AUGEND   
          MOV   DX,   word   ptr   AUGEND+2     
          ADD   AX,   word   ptr   ES:ADDEND   
          ADC   DX,   word   ptr   ES:ADDEND+2     
          MOV   BX,   04H   ;附比较次数为4次
          MOV   SI,10
    BEGIN1:
          DIV    SI        ;除以10,商放在dx里面
          PUSH   DX        ;把DX入栈 
          MOV    DX, 0H     ;把DX置零
          DEC    BX       ;BX-1
          CMP    BX, 0    ;比较
          JGE    BEGIN1   ;大于或等于转移到begin1 
    BEGIN2:
          POP    DX       ;把DX的值出栈
          ADD    DX, 30H  ;转换为字符
          MOV    AH, 2H   ;显示输出
          INT    21H
          INC    BX       ;BX的值减一
          CMP    BX, 3      
          JLE BEGIN2    ;小于或等于转移到begin2
    STOP: 
          MOV   AH,4CH   
          INT   21H   
  MAIN   ENDP     
  C_SEG   ENDS     
  END   START

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?