汇编语言题目 求解 10
DA1DB56H,78H,67H,78HDA2DB2DUP(?)MOVAL,DA1ADDAL,DA1+2DAAMOVDA2,ALMOVAL,DA1十1ADCAL,DA1+...
DA1 DB 56H,78H,67H,78H
DA2 DB 2 DUP(?)
MOV AL,DA1
ADD AL,DA1+2
DAA
MOV DA2, AL
MOV AL,DA1十1
ADC AL,DA1+3
DAA
MOV DA2+1,AL
(DA2)=?
(DA2+1)=?
CF=? 展开
DA2 DB 2 DUP(?)
MOV AL,DA1
ADD AL,DA1+2
DAA
MOV DA2, AL
MOV AL,DA1十1
ADC AL,DA1+3
DAA
MOV DA2+1,AL
(DA2)=?
(DA2+1)=?
CF=? 展开
2个回答
展开全部
MOV AL,DA1 ;56H→AL,AF=0,CF=0
ADD AL,DA1+2 ;56H+67H=BDH→AL,AF=0,CF=0
DAA ;BDH→23H→AL,AF=1,CF=1
MOV DA2,AL ;AL→DA2,AF=1,CF=1
MOV AL,DA1+1 ;78H→AL,AF=1,CF=1
ADC AL,DA1+3 ;78H+78H+CF=F1H→AL,AF=1,CF=0
DAA ;F1H→57H→AL,AF=1,CF=1
MOV DA2+1,AL ;AL→DA2+1,AF=1,CF=1
(DA2)=23H
(DA2+1)=57H
CF=1
十进制数加调整指令DAA(Decimal Adjust After Addition),该指令用于调整AL的值,该值是由指令ADD或ADC运算二个压缩型BCD码所得到的结果。压缩型BCD码是一个字节存放二个BCD码,低四位和高四位都是一个BCD码。
调整规则如下:
如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1;
如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;
如果以上两点都不成立,则,清除标志位AF和CF。
经过调整后,AL的值仍是压缩型BCD码,即:二个压缩型BCD码相加,并进行调整后,得到的结果还是压缩型BCD码。
指令格式:DAA
受影响的标志位:AF、CF、PF、SF和ZF(OF无定义)
ADD AL,DA1+2 ;56H+67H=BDH→AL,AF=0,CF=0
DAA ;BDH→23H→AL,AF=1,CF=1
MOV DA2,AL ;AL→DA2,AF=1,CF=1
MOV AL,DA1+1 ;78H→AL,AF=1,CF=1
ADC AL,DA1+3 ;78H+78H+CF=F1H→AL,AF=1,CF=0
DAA ;F1H→57H→AL,AF=1,CF=1
MOV DA2+1,AL ;AL→DA2+1,AF=1,CF=1
(DA2)=23H
(DA2+1)=57H
CF=1
十进制数加调整指令DAA(Decimal Adjust After Addition),该指令用于调整AL的值,该值是由指令ADD或ADC运算二个压缩型BCD码所得到的结果。压缩型BCD码是一个字节存放二个BCD码,低四位和高四位都是一个BCD码。
调整规则如下:
如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1;
如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;
如果以上两点都不成立,则,清除标志位AF和CF。
经过调整后,AL的值仍是压缩型BCD码,即:二个压缩型BCD码相加,并进行调整后,得到的结果还是压缩型BCD码。
指令格式:DAA
受影响的标志位:AF、CF、PF、SF和ZF(OF无定义)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询