INVOKE 伪指令,只用于 32 位模式,将参数入栈(按照 MODEL 伪指令的语言说明符所指定的顺序)并调用过程。INVOKE 是 CALL 指令一个方便的替代品,因为,它用一行代码就能传递多个参数。常见语法如下:
INVOKE procedureName [, argumentList]
ArgumentList 是可选项,它用逗号分隔传递给过程的参数。例如,执行若干 PUSH 指令后调用 DumpArray 过程,使用 CALL 指令的形式如下:
push TYPE array
push LENGTHOF array
push OFFSET array
call DumpArray
使用等效的 INVOKE 则将代码减少为一行,列表中的参数逆序排列(假设遵循 STDCALL 规范):
INVOKE DumpArray, OFFSET array, LENGTHOF array, TYPE array
INVOKE 对参数数量几乎没有限制,每个参数也可以独立成行。下面的 INVOKE 语句包含了有用的注释:
INVOKE DumpArray, ;显示数组
OFFSET array, ;指向数组
LENGTHOF array, ;数组长度
TYPE array ;数组元素的大小类型
参数类型如下表所示。
覆盖 EAX 和 EDX
如果向过程传递的参数小于 32 位,那么在将参数入栈之前,INVOKE 为了扩展参数常常会使得汇编器覆盖 EAX 和 EDX 的内容。有两种方法可以避免这种情况:
其一,传递给 INVOKE 的参数总是 32 位的;
其二,在过程调用之前保存 EAX 和 EDX,在过程调用之后再恢复它们的值。
<
上一页
递归及应用详解
ADDR运算符
下一页
>
socket
Python基础教程
MySQL函数
MySQL
C语言入门
C语言专题
C语言编译器
C语言编程实例
GCC编译器
C语言项目案例
C++教程
OpenCV
Unity 3D教程
Redis
Android教程
JavaScript
Mybatis
Spring Cloud
Maven
Spring Boot
Spring MVC
Hibernate
Linux
Linux命令
Shell脚本
Java教程
Spring
Servlet
Struts2
Java Swing
JSP教程
CSS教程
TensorFlow
Go语言教程
Docker
VIP视频
cin.getline():C++读入一行字符串(整行数据)
Java多线程之间访问实例变量
C++数组做函数参数详解
C语言函数定义(C语言自定义函数)
卷积自编码器(TensorFlow实现)
JSP PageContext.getResponse()方法:获取当前的Response对象
JSP JSTL <x:forEach>标签:遍历XML文件
Go语言简单的统计函数
Apollo在Java中的使用
Python GIL全局解释器锁详解(深度剖析)