call与retn指令

发布时间 2023-08-15 09:58:31作者: ONEZJ

一. call指令

  1. 将call指令下一跳指令压入栈中
  2. jmp跳转到call指令的地址

二. retn指令

  1. pop指令将栈顶元素弹出存储
  2. jmp跳转到该栈顶元素地址
  3. retn n;表示再前两步操作的基础上加上esp+=n,用于实现堆栈平衡,这里一般的平衡的是压入栈的参数。

需要关注的是retn指令所在的位置一定要是对应call指令所压入地址的位置。