用汇编语言将两个两位十进制数相加

将两个两位十进制数相加,要求算术式以字符串的形式存放在DATA1为首的单元中,结果存放在DATA2单元中。
2026年09月24日 01:41
有1个网友回答
网友(1):

        CODE  SEGMENT
              ASSUME    CS:CODE

        STR1  DB        '99+88','=$'
           X  DB        2 DUP(0)
           Y  DB        2 DUP(0)
          RE  DB        3 DUP(0),'$'

      START:
              PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              LEA       DX,STR1
              MOV       AH,9
              INT       21H
              
              LEA       SI,STR1
              MOV       AL,[SI+1]
              AND       AL,0FH
              MOV       X,AL
              MOV       AL,[SI]
              AND       AL,0FH
              MOV       X+1,AL
              
              MOV       AL,[SI+4]
              AND       AL,0FH
              MOV       Y,AL
              MOV       AL,[SI+3]
              AND       AL,0FH
              MOV       Y+1,AL
              
              MOV       AL,X
              ADD       AL,Y
              AAA
              PUSHF
              OR        AL,30H
              MOV       RE+2,AL
              POPF
              MOV       AL,X+1
              ADC       AL,Y+1
              AAA
              PUSHF
              OR        AL,30H
              MOV       RE+1,AL
              POPF
              MOV       AL,0
              ADC       AL,0
              OR        AL,30H
              MOV       RE,AL
              
              LEA       DX,RE
              MOV       AH,9
              INT       21H
                                          
              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START