[問題] 新手請教有關main的前置asm code
像如下的是普通C code compile出來的asm
int main(void)
{
401050: 55 push %ebp
401051: 89 e5 mov %esp,%ebp
401053: 83 ec 08 sub $0x8,%esp
401056: 83 e4 f0 and $0xfffffff0,%esp
常常看到c編譯出來的asm code一開始main都大概如下的長相
前幾行跟一般函數呼叫要做的差不多
還算大概知到要先保存ebp,然後再把esp存成新的ebp
之後sub esp預留區域變數的空間
但再來的and -16,目的是什麼呢,
無法理解已經弄好的esp為什麼要清空後面4bit?
這行在呼叫函數好像沒看到?
由於手邊目前沒書,想請問一下這行是要做什麼呢?
(還是說我跟本搞錯了,
因為main在第一行C code之前補的code我常不知道在做什麼的
看code總感覺在做白工,有做沒做差不多的樣子)
問題好像很笨,有點新,還請不另賜教 @@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.26.164
推
04/07 14:53, , 1F
04/07 14:53, 1F
推
04/11 21:35, , 2F
04/11 21:35, 2F
推
04/12 08:24, , 3F
04/12 08:24, 3F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章