请教汇编达人!CF,OF,补码问题!
mov eax, 1
sub eax, 2
;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器!
mov eax, 1
add eax, -2
和上边的CF,OF,计算步骤有什么不同!CPU的计算过程是什么?
mov bl,64h
sub bl,03h
CF,OF?补码?
3-C8,怎么计算?无符号情况和有符号情况!谢谢,达人解答!
[解决办法]
2楼插入广告的方法很奇特!
[解决办法]
mov eax, 1
sub eax, 2
;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器!
答:1、对标志的影响CF进位置1,它在做减法有借,对PF奇标志影响当运算结果最低字节中“1”的个数零或偶数,PF=1
对AF辅助进标志影响,运算时D3位(低半字节)有进位或借位时AF=1。
2、它对OF影响因为没有溢出。
以下是运算结果:
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B001 MOV AL,01
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0102 NV UP EI PL NZ NA PO NC
0AFB:0102 2C02 SUB AL,02
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0104 NV UP EI NG NZ AC PE CY
[解决办法]
减法运算是通过补码加法实现的,如以4位为例:
1-2=1+(-2)=1加-2的补码=0001+1110=1111=-1
关于CPU的CF标志位是如何实现的,已经超出了汇编语言讨论的范畴。
[解决办法]
加数1 0001的符号位与结果1111的符号的比
不同就算借位了
[解决办法]