过程¶
汇编语言的前置知识点汇总,参考书籍《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控制权返回到程序中过程被调用的地方继续执行。