程序分:代码段、数据段、以及堆栈区(running statck);
对变量的操作需要借助寄存器做中介;
EAX:存取变量,累加寄存器
EBX:
ECX:计数器
EDx:
ESI:源地址
EDI:目的地址
EBP:堆栈基址
ESP:堆栈操作指针
局部变量:栈存储并释放
全局变量:数据区
用户分配的变量都是在堆里面申请并释放
子函数调用过程:
push ebp;将ebp保存到堆栈
move ebp esp;使用ebp寄存器,将esp赋值到ebp;
sub esp,44h;分配局部变量存储区域;i386等堆栈是向下增长的即往内存小的地址增长
。。。。。
add....
pop...
函数的调用 在内部都是以地址跳转进行的