非正式定义为以返回语句结束的命名语句块.
使用PROC和ENDP伪指令声明,必须制定一个有效的名字(标识符).
如:
sample PROC
...
ret
sample ENDP
程序启动过程之外的其他过程应以RET指令结束.强制CPU返回过程被调用的地方.
启动过程(main)是特例.必须调用终止程序运行的系统函数.
main PROC
...
INVOKE ExitProcess, 0
main ENDP
CALL和RET指令
CALL指令把返回地址压入堆栈并把被调用过程的地址复制到指令指针寄存器EIP.
RET总堆栈中弹出返回地址并送到EIP.
保存和恢复寄存器
USES操作符
调用过程,可能因为参数及返回值,改变寄存器的内容.USES可以指定被过程修改的所有寄存器.调用过程时保存这些
寄存器的值,返回时恢复这些寄存器的值.
USES应紧跟PROC伪指令.
arraySum PROC USES esi ecx
...
ret
arraySum ENDP