前言
纸上得来终觉浅,觉知此事要工行
溢出
回顾【数字表示】
溢出的判断方法
资料:寄存器中的内容含义
测试1
例题
asm文件
运行
debug
分析
执行 mov al,[0000]之后
al=EE
寄存器中的内容 NV…NC
没溢出…没进位
DF=1 CF=0
执行 mov al,[0001]之后
al=B6
寄存器中的内容 NV…CY
没溢出…有进位
DF=1 CF=1
结论
对于无符号系统,CF=1,结果不正确
对于带符号数,OF=CF⊕DF=0.结果正确
BCD 码
二-十进制代码(BCD 码):用4位2进制表示10进制数字
例题
38+49(BCD和)
38 0011 1000 + 49 0100 1001 = 81 1000 0001
结果1000 0001 8421BCD是81
分析
因为BCD码是4位表示10进制,每4位进1,就是10
而二进制,每4位进1,就是16
所以,还要加6
81 1000 0001 + 6 0000 0110 = 87 1000 0111
结果1000 0111 8421BCD是87
BCD码运算的调整
有专门调整的指令daa
测试2.1
调试
分析
可以看出它的结果AL=81
测试2.2
需要修正测试1
有专门调整的指令daa
调试
DAA执行前
AL=81
DAA执行后
结果AL=87
ASCII码
测试3.1
运行
发现结果没有换行
测试3.2
添加回车键(ASCII=0dh)
运行
发现结果仍然没有换行
测试3.3
添加换行键(ASCII=0ah)
运行
结果达到预期
End
欢迎一键三连
Thank you for watching
End