汇编语言中的大数据加法

在8086CPU中一切数据寄存器都是16位的,在其中需要实现大于16位的加法运算时,就需要拆开计算

先简述一下步骤:

1、首先是将一个大数据拆成多个16位的数据,比如说是48B5A2EF001H,可以拆成048BH,5A2EH,F001H

2、最低位的16位数先进行add运算:add 相加的第一个数的低16位(寄存器),相加的第二个数的低16位

3、用adc指令对之后的每16位进行运算:adc 相加的第一个数的16位(寄存器),相加的第二个数的16位

比如说要将48B5A2EF001H + 21654F54BDF4H

先拆:048BH,5A2EH,F001H

            2165H,4F54H, BDF4H

assume cs:code

code segment

	start:								mov ax, 048BH
										mov bx, 5A2EH
										mov cx, 0F001H
										add cx, 0BDF4H
										adc bx, 4F54H
										adc ax, 2165H
										
										mov ax, 4C00H
										int 21H
										
code ends
end start



结果的高位存放在ax中,次高位存放在bx中,低位存放在cx中

所以得到的结果就是上面截图所示的

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值