汇编知识点-过程

非正式定义为以返回语句结束的命名语句块.

使用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

原文地址:https://www.cnblogs.com/flytrace/p/3240630.html