2015-12-08 70 views
1

問題大會PUSH指令

在GCC編譯器的角度思考,AT & T語法和32位彙編,哪兩個指令將相當於:

Push %eax 

嘗試:

我認爲這是下面這兩個:

Addl $0x4, %esp 
movl %eax, -0x4(%esp) 

有人可以確認嗎?如果有人錯,請指點我正確的方向。謝謝!

+1

當您按下時,堆疊在內存中向下增長,而不是向上。嘗試'subl $ 0x04,%esp'和'movl%eax,(%esp)' –

+0

哦,我很接近,謝謝。 – Earthbound27

+0

是'subl',請參閱我原始評論的更新和等效代碼。 –

回答

1

它應該是,

leal -4(%esp), %esp; 
movl %eax, (%esp); 

子可以改變的標誌!