设(AL)=-68,(BL)=86,执行SUB AL,BL指令后,正确的结果是( ) A) SF=1 B) ZF=0 C) CF=1 D) OF=1

选那个 为什么选这个?
2024-11-26 10:49:19
推荐回答(4个)
回答1:

(AL)=-68=0BCH=1011 1100B
(BL)= 86= 56H=0101 0110B
从上可以看出,AL减去BL:
最高位不会借位,所以CF=0;
符号位的1会被借走,所以符号位运算结果为0 ,SF=0;
该减法不会溢出,OF=0;
最后的运算结果非0,ZF=0。
故,答案是B。

回答2:

解答如下:
68h = 01101000b,取反加一后为10011000b = 98h
86h = 10000110b,取反加一后为011111010b = 7Ah
所以al和bl相减后,SF = 0(AL)表示的有符号数大

ZF = 0,因为结果不是0

CF = 0,AL表示的十六进制数比BL大(没有借位)

OF = 0,011111010b - 01101000b = 42
在范围 -128 -- 127内,所以OF = 0

回答3:

将它当做俩负数相加来算 zf=0
of的溢出因为相加超过了-127


回答4:

AL=1011 1100
BL=0101 0110
执行后: SF=0 ZF=0 CF=0 OF=1
所以B