0
点赞
收藏
分享

微信扫一扫

【C终章】函数栈帧的创建和销毁

目录

一、本文目标

二、基础知识

       1、寄存器

       2、代码案例

       3、总体栈帧概况

       4、所需反汇编代码总览

三、函数栈帧创建销毁过程

       1、_tmainCRTStartup函数(调用main函数)栈帧的创建

       2、main函数栈帧的创建

       3、main函数内执行有效代码(变量)

       4、Add函数栈帧的创建

       5、Add函数内执行有效代码

       6、Add函数栈帧的销毁

       7、main函数栈帧的销毁

四、总结


一、本文目标

二、基础知识

1、寄存器

寄存器名称简介
eax"累加器"  它是很多加法乘法指令的缺省寄存器。
ebx"基地址"寄存器, 在内存寻址时存放基地址。
ecx计数器,是重复(REP)前缀指令和LOOP指令的内定计数器。
edx总是被用来放整数除法产生的余数。
esi源索引寄存器
edi目标索引寄存器
ebp(栈底指针)"基址指针",存放的是地址,用来维护函数栈帧
esp(栈顶指针)专门用作堆栈指针,存放的是地址,用来维护函数栈帧

2、代码案例

3、总体栈帧概况

4、所需反汇编代码总览

三、函数栈帧创建销毁过程

1、_tmainCRTStartup函数(调用main函数)栈帧的创建

2、main函数栈帧的创建

3、main函数内执行有效代码(变量)

4、Add函数栈帧的创建

5、Add函数内执行有效代码

6、Add函数栈帧的销毁

7、main函数栈帧的销毁

四、总结

举报

相关推荐

0 条评论