2013-02-26 74 views
1

我關於此指令的間接尋址模式很困惑:x86尋址模式

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

回答

2

AND 0x0000FF00, 0xDEADBEEF與結果:0x0000BE00存儲在0xBF8DB0B8

由於%esp包含地址0xBF8DB0B44(%esp)是地址0xBF8DB0B80xDEADBEEF就是在該地址。