;压缩十进制实例
;演示十进制加法
include irvine32.inc
.data
packed_1 WORD 4536h
packed_2 WORD 7270h
sum DWORD ?
.code
main PROC
;初始化和属与索引
mov sum,0
mov esi,0
;低字节相加
mov al,BYTE PTR packed_1[esi]
add al,BYTE PTR packed_2[esi]
daa ;将结果转化为压缩十进制
mov BYTE PTR sum[esi],al
;高字节相加,包括进位标志位
inc esi
mov al,BYTE PTR packed_1[esi]
adc al,BYTE PTR packed_2[esi]
daa ;将结果转化为压缩十进制
mov BYTE PTR sum[esi],al
;若还有进位,加上进位置
inc esi
mov al,0
adc al,0
mov BYTE PTR sum[esi],al
;用十六进制显示合数
mov eax,sum
call WriteHex
call Crlf
call WaitMsg
exit
main ENDP
end main
043.基于DAA指令压缩十进制数加法的演示实例
最新推荐文章于 2022-11-14 00:18:41 发布
本示例通过汇编语言演示了两个压缩十进制数的加法过程,详细介绍了低字节和高字节相加的操作,以及如何处理进位,最终将结果以十六进制形式展示。
5114

被折叠的 条评论
为什么被折叠?



