环境: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]
使用INVOKE和PROTO构建多模块程序
原文:https://www.cnblogs.com/blues2600/p/14672434.html