汇编指令里减法指令如果被减数小余减数怎么算

MOV AX.3456H
ADD AL.AH
DAA
XCHG AH. AL
SUB AL.AH
DAS
上述程序段执行后,AL=________,AH=________。
比如第四段是34h减90h为什么算出来等于4Ah?

汇编语言中,当执行减法指令时,如果被减数小于减数时,同样也是要向高位产生借位操作的。需要注意理解的是在通常的十进制运算中,低位向高位借位时,是借1得10,而汇编语言中用到十六进制操作数,向高位借1得到的是16。题目中34H减90H,低四位相减等于4,高四位相减3小于9,要发生借位,借得16加3等于19,19减9等于10,即16进制A。所以减法指令得到的结果是A4。在减法指令后面跟有一条DAS指令,将减法运算的结果调整为十进制表示的BCD码,高位A>9,减6。这时虽看不到负数,但在调整高位时标志寄存器中的进位标识位被置位,由此可判断结果的正负。
温馨提示:答案为网友推荐,仅供参考
相似回答