汇编:十进制调整指令

十进制调整指令

首先,我们介绍一下组合BCD码和分离BCD码。
BCD码:用4位二进制数表示1位十进制数的编码。例如十进制数9用BCD码表示为1001.有人会问BCD码和普通二进制数表示有何区别? 答案是BCD码的每4位表示范围为0~9,而不是0 ~15了。也就是说BCD码和十进制数对应,而一般01机器码是和十六进制数对应的。
①组合BCD码:1个字节表示两位十进制数。例如十进制数29用组合BCD码对应为00101001.
②分离BCD码:1个字节表示1位二进制数。例如十进制数29用组合BCD码对应为0000001000001001.

如何理解十进制调整指令呢?

在了解了BCD码后,我们介绍十进制调整指令。
在计算机中,通常数据运算都是以十六进制来进行的,因为1111最大能表示16个数。下图为BCD码调整指令的原理。有助于初学者理解,一定要知道十进制数是为了方便人们辨识,人们所习惯的数制,但是在机器语言中,通常使用十六进制数。
该图展示了BCD码调整指令的原理
①BCD码的加法运算调整指令AAA/DAA
DAA:两个组合BCD码相加的和,该和一定事先放置于AL中,DAA能够将调整其获得正确的分离BCD码并放入AL中。
AAA:两个分离BCD码相加的和,该和一定事先放置于AX中,DAA能够将去调整其获得正确的组合BCD码并放入AX中。
说明:
①DAA、AAA指令要紧跟在加法指令ADD或ADC指令之后使用。
②指令的使用条件是AF、CF以及非法码,如果不满足其中的任何条件,则指令不能正确执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值