我对此指令的间接寻址模式非常困惑:
and $0x0000FF00, 4(%esp)
如果这是当前的堆栈顶部:
0xBF8DB0B8: 0xDEADBEEF <--- ESP + 4
0xBF8DB0B4: 0xDEADBEEF <--- ESP
这是0xDEADBEEF
的内存内容:
0xDEADBEEF: 0x1234ABCD
将执行以下哪项操作?
AND 0x0000FF00, 0xDEADBEEF
结果:0x0000BE00
存储在0xBF8DB0B8
。
AND 0x0000FF00, 0x1234ABCD
,结果:0x0000AB00
存储在0x0000AB00
。
AND 0x0000FF00, 0xDEADBEF3
。结果:0x0000BE00
存储在0xDEADBEF3
。
答案 0 :(得分:2)
AND 0x0000FF00, 0xDEADBEEF
结果:0x0000BE00
存储在0xBF8DB0B8
:
由于%esp
包含地址0xBF8DB0B4
,4(%esp)
是地址0xBF8DB0B8
,0xDEADBEEF
是该地址中的内容。