逻辑NEG和AND指令后,EDX具有哪个值?

时间:2019-05-18 17:42:49

标签: assembly x86

我正在解决一个汇编程序问题,但偶然发现了一个逻辑方面的问题。 让我思考的是,在将数字系统从HEX更改为BIN并进行求反和AND操作后,我得到的答案不同于其他人(我无法联系)。

MOV eax, 0f0f0f0f0h;
MOV edx, 87654321h;
NOT ax;
INC dx;
AND edx, eax;

我期望输出是这样的:80604020h这是答案之一,但是另一个人做出了决定并回答了:80600302h对我而言,算术后没有任何意义。我还是一个新手,所以我可能不知道出什么问题了,有人可以解释我的答案有什么问题吗?还是正确的答案?

1 个答案:

答案 0 :(得分:2)

让我们一次接受一条指令。 NOT ax会将EAX更改为

0F0F0F0F0

0F0F00F0F

因为AX是EAX的低16位。然后INC dx会将EDX更改为

 87654321

 87654322

然后AND edx,eax指令会将它们组合起来

 0F0F00F0F
& 87654322
= 80600302

哪个可以使您朋友的答案正确?

如果NOT指令为NOT EAX,则答案为07050302。