跳转至

过程

汇编语言的前置知识点汇总,参考书籍《Intel汇编语言程序设计》 (*)标注的模块是往年没有的(指2023及以前),可以多加关注 本章知识点强调:

  • 程序链接和链接库:proto伪指令include和includelib的区别
  • 栈机制:栈的增长方向,栈中存储的数据
  • 过程的定义和使用:proc、endp

Part01 程序的链接和链接库

Part02 栈机制

Part03 过程的定义与调用

汇编语言中,一般使用术语“过程”表示高级语言中的函数、方法。

启动过程

启动过程的返回语句是:INVOKE ExitProcess,0 - 将CPU的控制权转移给Windows系统

main PROC
...
main ENDP

一般过程

汇编语言把过程定义为以返回语句结束的命名语句块。 除了启动过程之外,其他过程以ret指令结束。将CPU控制权转移过程被调用的地方

my_proc PROC
    ...
    ret
my_proc ENDP

过程的调用与返回

  • call指令调用后,将过程返回地址压入栈,讲过程入口地址赋值给EIP,实现CPU控制权的转移到新的内存地址执行指令,实现过程的调用。
  • ret指令将过程,将过程的返回地址复制给EIP寄存器,实现CPU控制权返回到程序中过程被调用的地方继续执行。