zmbilx 发表于 2019-11-3 12:38

汇编proc uses 的问题

-_resultProcMain   procuses ebx edi esi hProcessModuleDlg:HWND,wMsg,wParam,lParam```asm
_resultProcMain   procuses ebx edi esi hProcessModuleDlg:HWND,wMsg,wParam,lParam
```
<hr>
这句汇编代码看不懂后面的 uses ebx edi esi hProcessModuleDlg:HWND,wMsg,wParam,lParam,use后面直接跟寄存器,是让它压栈,但是后面为什么又加一个HWND类型的hProcessModuleDlg,而且use后面的wMsg,wParam,lParam这三个参数也和use后面的四个参数个数不等啊,这个函数到底取了几个参数,每个参数是什么,很迷啊

klamauk 发表于 2019-11-3 16:50

逗号的问题它格式就是这样。uses后面的寄存器跟参数无关。
uses ebx edi esi这句编译器会自动帮你在函数的开头写上push ebx push edi push esi,
然后在函数退出前pop ebx pop edi pop esi.目的就是保护寄存器原来的值。

klamauk 发表于 2019-11-3 15:21

uses ebx edi esi是让编译把这几个寄存器压栈和出栈。这个函数有4个参数,hProcessModuleDlg:HWND,wMsg,wParam,lParam。
只不过第一个参数指定了类型是HWND,其它3个默认DWORD。

zmbilx 发表于 2019-11-3 16:33

klamauk 发表于 2019-11-3 15:21
uses ebx edi esi是让编译把这几个寄存器压栈和出栈。这个函数有4个参数,hProcessModuleDlg:HWND,wMsg,w ...

可是逗号为什么不在esi后面啊,却在HWND后面,我看格式是label PROC , parameter_list这样的。还有一个问题 是后面参数与前面的uses后面的寄存器没有关系吗?

zmbilx 发表于 2019-11-3 17:01

klamauk 发表于 2019-11-3 16:50
逗号的问题它格式就是这样。uses后面的寄存器跟参数无关。
uses ebx edi esi这句编译器会自动帮你在函数的 ...

恩恩,了解啦了解啦,谢谢您的热心解答
页: [1]
查看完整版本: 汇编proc uses 的问题