怎么用其他语句实现汇编daa指令 50
、如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1;、如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;、如果以上两...
、如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1;
、如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;
、如果以上两点都不成立,则,清除标志位AF和CF。
按照这三个逻辑
谢谢 展开
、如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;
、如果以上两点都不成立,则,清除标志位AF和CF。
按照这三个逻辑
谢谢 展开
展开全部
代替 DAA 指令的程序如下:
;===============================
DAA_PROG:
LAHF ;FLAG--->AH
TEST AH, 10H ;AF
JE DA1
ADD AL, 06H
JMP DA2
DA1:
MOV BL, AL
AND BL, 0FH
CMP BL, 0AH
JB DA2
ADD AL, 06H
OR AH, 10H
DA2:
TEST AH, 01H ;CF
JE DA3
ADD AL, 60H
JMP DA4
DA3:
MOV BL, AL
AND BL, 0F0H
CMP BL, 0A0H
JB DA4
ADD AL, 60H
OR AH, 01H
DA4:SAHF ;FLAG<---AH
RET
;===============================
本程序经过全面测试,无误。
2017-07-22
展开全部
DA指令实质上是低四位或者高四位超过9的话加6,然后向上进位,用汇编指令应该很好实现,分别对低四位、高四位进行超过9的比较,如果超过则加6之后进位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询