相加

汇编语言 – 两个多位数相加的运算

CRLF MACRO
     MOV DL,0DH
     MOV AH,02H
     INT 21H
     MOV DL,0AH
     MOV AH,02H
     INT 21H
ENDM 
DATA     SEGMENT
DATA1    DB       33H,39H,31H,37H,39H,30H
DATA2    DB       36H,35H,30H,38H,39H,30H
DATA     ENDS
STACK    SEGMENT 
STA      DB       20  DUP('?')
TOP      EQU      20
STACK    ENDS
CODE     SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START:   MOV AX,DATA
         MOV DS,AX
         MOV AX,STACK
         MOV SS,AX 
         MOV AX,TOP
         MOV SP,AX
         MOV SI,OFFSET DATA2
         MOV BX,05
         CALL DISPL
         CRLF 
         MOV SI,OFFSET DATA1
         MOV BX,05
         CALL DISPL
         CRLF
         MOV DI,OFFSET DATA2
         CALL ADDA
         MOV BX,06
         CALL DISPL
         CRLF
         MOV AX,4C00H
         INT 21H
DISPL    PROC NEAR
DSI:     MOV  AH,02
         MOV  DL,[SI+BX-1]
         INT  21H
         DEC  BX
         JNZ  DSI
         RET
DISPL    ENDP 
ADDA     PROC NEAR
         MOV DX,SI
         MOV BP,DI
         MOV BX,05
AD1:     SUB BYTE PTR[SI+BX-1],30H
         SUB BYTE PTR[DI+BX-1],30H
         DEC BX
         JNZ AD1
         MOV SI,DX
         MOV DI,BP
         MOV CX,06
         CLC
AD2:     MOV AL,[SI]
         MOV BL,[DI]
         ADC AL,BL
         AAA
         MOV [SI],AL
         INC SI
         INC DI
         LOOP AD2
         MOV SI,DX
         MOV DI,BP
         MOV BX,06
AD3:     ADD BYTE PTR[SI+BX-1],30H 
         ADD BYTE PTR[DI+BX-1],30H 
         DEC BX
         JNZ AD3
         RET
ADDA     ENDP
CODE     ENDS
         END START

EM8086软件仿真结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值