2016-03-12 120 views
-3

我遇到了使用IDA在Windows中調試64位二進制文​​件的問題。通常情況下,後,RSP值應該扣除8.但偶爾從IDA,我看到RSP只扣除2,然後8扣除下一個推。Intel 64位,奇怪的RSP行爲

涉及的代碼是

push rax 
push rbx 
push rsi 
push rdi 

我是很新的64位環境,從而任何人都可以解釋這種現象?

+2

它不應該是2,除非代碼使用16位推(這是不正常的)。顯示說明和之前。 – Jester

+0

downvted:不包含詳細信息(如具有特定指令前後值的調試器實際文本轉儲)。 –

回答

5

您可能會混淆爲十六進制。由8計數去

0 8 10 18 20 28 30 

你在看,並思考10 - 8 == 2?因爲它是0x10 - 0x8 == 0x8

+2

你是否也有額外的心理閱讀費用? :) – Jester

+0

@Jester:Nope,包的所有部分:)我偶爾發現自己犯了一兩個錯誤,足以記住它發生了。不過,我花了幾分鐘的時間在輸入評論時想到這一點。 :P –