目录
一、本文目标
二、基础知识
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函数栈帧的销毁
四、总结