21,459
社区成员
发帖
与我相关
我的任务
分享
函数参数3 -> 16(%ebp)
函数参数2 -> 12(%ebp)
函数参数1 -> 8(%ebp)
返回地址 -> 4(%ebp)
旧的EBP值 -> (%ebp)
局部变量1 -> -4(%ebp)
局部变量2 -> -8(%ebp)
局部变量3 -> -12(%ebp)
#include <stdio.h>
void fun()
{
int aa = 1;
int bb = 2;
int cc = 3;
}
int main()
{
fun();
return 0;
}
080483db <fun>:
80483db: 55 push %ebp
80483dc: 89 e5 mov %esp,%ebp
80483de: 83 ec 10 sub $0x10,%esp
80483e1: c7 45 f4 01 00 00 00 movl $0x1,-0xc(%ebp)
80483e8: c7 45 f8 02 00 00 00 movl $0x2,-0x8(%ebp)
80483ef: c7 45 fc 03 00 00 00 movl $0x3,-0x4(%ebp)
80483f6: 90 nop
80483f7: c9 leave
80483f8: c3 ret
函数参数3 -> 16(%ebp)
函数参数2 -> 12(%ebp)
函数参数1 -> 8(%ebp)
返回地址 -> 4(%ebp)
旧的EBP值 -> (%ebp)
局部变量3 -> -4(%ebp) //cc
局部变量2 -> -8(%ebp) //bb
局部变量1 -> -12(%ebp) //aa
PUBLIC ?fun@@YAXXZ ; fun
; Function compile flags: /Odtp
_TEXT SEGMENT
_bb$ = -12 ; size = 4
_cc$ = -8 ; size = 4
_aa$ = -4 ; size = 4
?fun@@YAXXZ PROC ; fun
; File r:\kc1.cpp
; Line 4
push ebp
mov ebp, esp
sub esp, 12 ; 0000000cH
; Line 5
mov DWORD PTR _aa$[ebp], 1
; Line 6
mov DWORD PTR _bb$[ebp], 2
; Line 7
mov DWORD PTR _cc$[ebp], 3
; Line 8
mov esp, ebp
pop ebp
ret 0
?fun@@YAXXZ ENDP ; fun