栈帧图2
2015-10-27 12:35:34 7 举报
栈帧图2展示了一个程序运行时的内存布局。在栈帧图中,我们可以看到多个栈帧,每个栈帧代表了一个函数调用。栈帧从底部开始,逐渐向上增长。每个栈帧包含了函数的局部变量、参数以及返回地址等信息。当一个函数被调用时,一个新的栈帧会被创建并压入栈中。当函数执行完毕后,对应的栈帧会被弹出。栈帧图2中的每个栈帧都有唯一的标识符,以便于区分不同的函数调用。通过分析栈帧图2,我们可以了解到程序运行时各个函数之间的调用关系以及内存使用情况。
作者其他创作
大纲/内容
33:push ebp
32: call @ILT+0(callee) (00401005)
ECX:2-return Addr:00401061
0019FE94
ECX:1-return Addr:00401061
...
42:ret
15:push edi
ESI
return Addr:00401103
0019FE38
0019FDF0
0xcccccccc...0xcccccccc
0019FEF4
call printf 省略
21: call @ILT+0(callee) (00401005)
EAX:0019FE94-EDX:0
37:0019FDE8
18:push offset string \"...\"
10:0019FEE8
0019FEEC
0019FE34
0019FE90
17,21:0019FE90
0019FDE8
0019FEE4
0019FEE8
31:push edx
ESP
值
24:0019FE48
0019FE8C
10. call @ILT+0(callee) (00401005)
EAX-ECX:2
29:push offset string \"...\"
38:pop edi
35:push ebx
EBX
EBP: a:0019FF80 - b:0019FF40 - c:0019FEE4 -d:0019FE8C - 0019FE34
16:push eax
13:0019FEA0
EAX: 2
17:push ecx
EDI
2:push ebp
14:0019FE9C
40:pop ebx
EBP 0019FF80
EBP:0019FF40
1:0019FF44
EBP:0019FEE4
41:pop ebp
12:0019FEA4
0019FEF8
0019FDEC
0019FEF0
14:push esi
0019FE44
25:0019FE44
37:push edi
0019FE40
22:push ebp
2:0019FF40
11.push ebp
0019FEA4
0019FF40
36:push esi
28:push ecx
26:push edi
0019FE3C
0019FE9C
20:push edx
4:push ebx
0019FF3C
11:0019FEE4
15,19:0019FE98
16:0019FE94
5:0019FEF4
13:push ebx
39:pop esi
7.push eax
23:0019FE4C
EBP:0019FE8C
0019FEA0
地址
6:push edi
4:0019FEF8
27push eax
5:push esi
0019FE98
...ret...
EAX:0019FEEC-EDX:1
3:0019FEFC
24:push ebx
涉及到ESP和EBP值变化的汇编指令
0019FE4C
25:push esi
0019FE48
9.push ecx
0019FF28
0019FDF4
call atoi(省略)
0 条评论
回复 删除
下一页