;压缩十进制实例
;演示十进制加法
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 发布