INVOKE ADDR PROC PROTO
来源:互联网 发布:网络布线 编辑:程序博客网 时间:2024/06/06 00:51
INVOKE ADDR PROC PROTOINVOKE 过程名[,参数列表]eg:push TYPE arraypush LENGTHOF arraypush OFFSET arraycall DumpArray等价于:INVOKE DumpArray,OFFSET array,LENGTHOF array,TYPE arrayADDRADDR操作符可在使用INVOKE调用过程的时候传递指针参数例如:下面的INVOKE语句向FillArray过程传递myArray的地址INVOKE FillArray,ADDR myArray通过ADDR操作符传递的参数必须是一个汇编时的常量PROC格式:标号 PROC [属性] [USES 寄存器列表],参数列表eg:AddTwo PROC,val1:DWORD,val2:DWORDmov eax,val1add eax,val2retAddTwo ENDP汇编后如下:AddTwo PROCpush ebpmov ebp,espmov eax,dword ptr [ebp+8]add eax,dword ptr [ebp+0Ch]leaveret 8AddTwo ENDPPROTO 伪指令可以帮助汇编器对比过程定义和过程调用的参数列表是否一致但检查不如c++严格 masm检查过程掉哦那个的参数数目是否正确并对参数的类型进行有限的匹配检查假设sub1原型如下 Sub1 PROTO,p1:BYTE,p2:WORD,P3:PTR BYTE定义如下变量.databyte_1 BYTE 10hword_1 WORD 2000hword_2 WORD 3000hdword_1 DWORD 12345678h下面是有效的调用INVOKE Sub1,byte_1,word_1,ADDR byte_1masm位这条INVOKE语句生成的代码push 404000hsub esp,2push word ptr ds:[00404001h]mov al,byte ptr ds:[00404000h]push eaxcall 00401071masm检测不到错误情况:实际参数小雨声明的参数的尺寸,masm不会产生错误eg:ArraySum PROC USES esi ecx,ptrArray:PTR DWORD,szArray:DWORDmov esi,ptrArraymov ecx,szArraymov eax,0cmp ecx,0je L2L1:add eax,[esi]add esi,4loop L1L2:retArraySum endpinvoke 调用ArraySum向过程传递了数组的地址以及数组中元素的数目:.dataarray DWORD 10000h,20000h,30000h,40000h,50000htheSum DWORD ?.codemain PROCINVOKE ArraySum,ADDR array,LENGTHOF arraymov theSum,eax
0 0
- INVOKE ADDR PROC PROTO
- 汇编proto、proc、invoke伪指令与函数声明、函数定义、函数调用
- protoc编译proto文件之Java源码结构分析一(addr.proto)
- addr
- proto
- 《Inter汇编语言程序设计》8.6 创建多模块程序(INVOKE PROTO)
- Invoke
- Invoke
- invoke
- Invoke
- Invoke()
- sock addr
- ip addr
- proc
- proc
- /proc
- proc
- proc
- ExpandListView onChildClickListener 失效
- Rendering Problems Exception raised during rendering: java.lang.System.array 的解决办法
- Spring配置
- 第十一周项目二求最大公约数(3)
- elastic
- INVOKE ADDR PROC PROTO
- Memcached 二进制协议(BinaryProtocol) incr指令泄露内存数据的bug
- lamp 的搭建与 gdb反编译hello world
- 大学--学到的是什么
- Local database deployment problems and fixtures
- Chromium Graphics Update in 2014(幻灯片)
- Sicily 1029. Rabbit【高精度加法】
- Hibernate 表关系描述之ManyToMany
- Hive编程指南学习笔记(1)