编译原理复习
汇编语言
- 堆栈框架
- 参数被压入堆栈。
- 过程被调用,返回地址被压入堆栈。
- 过程开始执行时, EBP 被压入堆栈。
- 使 EBP 和 ESP 的值相等,从这里开始, EBP 就作为寻址参数的基址指针。
- 可以从 ESP 中减掉一个数值来给过程的局部变量创建空间。
- Intel 的堆栈是在内存中是向下扩展的。先进栈的数据内存地址最高,后进栈的数据内存地址减少。且数据是按小尾类型存储,例如:数值 12345678H 存放的形式(假设按字):先存 1234 ,后存放 5678
- leave相当于
movl %ebp, %esp 之后 popl %ebp
,ret相当于popl %eip