回 帖 发 新 帖 刷新版面

主题:请求帮助——BCD码运算问题

mov al,09h
 mov bl,99h
 add al,bl
 daa

我觉得运算后 Al=A8    然后A8+60=08 这样调整那不是和原来的结果不相同了
进行BCD码算术运算后,是怎么回事呀,
似乎和原来的数不相等了
到底什么是BCD码运算,请教一下?

回复列表 (共1个回复)

沙发

其调整规则如下: 
如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1; 
如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1; 
如果以上两点都不成立,则,清除标志位AF和CF。 
经过调整后,AL的值仍是压缩型BCD码,即:二个压缩型BCD码相加,并进行调整后,得到的结果还是压缩型BCD码。 

我来回复

您尚未登录,请登录后再回复。点此登录或注册