求助--call指令的问题
求解:不是说call指令执行后也会将它下一条指令的地址压入堆栈吗?所以按照下面这个例子,调用的函数参数只有两个啊,所以在恢复堆栈平衡的时候我想应该是add esp,0xc 啊?但是为什么就是add esp,0x8呢?这是为什么呢?
z = Addemup(x,y)
0040101b 8b45f8 mov eax,[ebp-0x8] ; load eax with y
0040101e 50 push eax ; push y on stack
0040101f 8b4dfc mov ecx,[ebp-0x4] ; load ecx with x
00401022 51 push ecx ; push x on stack
00401023 e81b000000 call addemup!Addemup ; call Addemup
00401028 83c408 add esp,0x8 ; fixup stack for args
0040102b 8945f4 mov [ebp-0xc],eax ; z returned in eax