1

我对此指令的间接寻址模式感到非常困惑:

and $0x0000FF00, 4(%esp)

如果这是当前栈顶:

0xBF8DB0B8: 0xDEADBEEF <--- ESP + 4
0xBF8DB0B4: 0xDEADBEEF <--- ESP

这是内存的内容0xDEADBEEF

0xDEADBEEF: 0x1234ABCD

将执行以下哪项?

  1. AND 0x0000FF00, 0xDEADBEEF结果:0x0000BE00存储在0xBF8DB0B8.

  2. AND 0x0000FF00, 0x1234ABCD,结果:0x0000AB00存储在0x0000AB00.

  3. AND 0x0000FF00, 0xDEADBEF3. 结果:0x0000BE00存储在0xDEADBEF3.

4

1 回答 1

2

AND 0x0000FF00, 0xDEADBEEF结果:0x0000BE00存储在0xBF8DB0B8

由于%esp包含地址0xBF8DB0B44(%esp)是地址0xBF8DB0B8,并且0xDEADBEEF是该地址中的内容。

于 2013-02-26T07:51:36.853 回答