使用INVOKE和PROTO构建多模块程序

环境:vs2019,win7
 
在main文件声明过程
FindThrees PROTO,
array:PTR DWORD,     ;数组指针
MYlength:DWORD        ;数组长度
 
在other文件定义过程
FindThrees PROC USES ecx esi edx,
          array:PTR DWORD,     ;数组指针
          length:DWORD        ;数组元素个数
          LOCAL one:DWORD,
              two:DWORD       ;局部变量
 
在main文件调用过程
invoke FindThrees,ADDR myNum,myLong
 
 
传递指针参数
ADDR myNum
 
过程内使用指针
如果这样调用过程:INVOKE FUNC ADDR parameter
那么在过程内部这样引用:parameter[esi],它的值是一个实际内存地址,而不是值本身。
正确的方式:mov esi,parameter
                    mov eax,[esi]
posted @ 2021-04-17 22:51  blues2600  阅读(54)  评论(0)    收藏  举报