鑑於以下X86-64 AT & T彙編行:的x86寄存器值
cmpl $0x7,0xc(%rsp)
這是訪問的第12 RSP內存從$抵消。那麼它是在訪問內存中的rsp
之後訪問12*4 = 48
,第48個字節,還是rsp
之後的第96個字節,訪問12*8 = 96
?由於這是64位體系結構,因此寄存器的長度應爲8個字節,因此96?
無論如何,要訪問gdb
中的那個位置,我會做x/96s $rsp
嗎?有沒有一個簡單的方法來打印沒有整個偏移列表?
如果我寫x/12s $rsp
,那麼我得到的內存地址從0x7FFFFFFFE1F0
到0x7FFFFFFFE20D
。所以開始和結束之間的偏移量差異是29個字節。當我指定12時,這是合乎邏輯的嗎?
謝謝
IIRC,'cmpl'指令是32位(cmpb是一個字節,cmpw是一個16位值),所以我不驚訝地看到它使用+ 3 * 4作爲偏移量......它會使用「cmpq」位值,不是嗎? – PypeBros