函数的定义
函数就是一系列指令的集合,为了完成某个会重复使用的特定功能。
例子:向寄存器中赋值
如何执行一个函数(函数调用)
1. 用JMP来执行函数
但是JMP有个弊端,就是jmp跳到函数的地方没法回去,即使能回去,函数没法重复调用(通常不用JMP)
2. 用CALL来执行函数
call指令有个好处就是会把当前call指令的地址的下面一个地址压到堆栈里,可以在函数的最后用RET指令回去,所以函数一般最后都有ret指令。
参数与返回值
例子:
EAX通常作为返回值,传参在调用函数之前。
堆栈传参
通用寄存器只用8个按理说只能存放8个参数,如果参数超过8个的做法。
用push的指令对堆栈地址传参,再用call指令调用从ESP中取值