首页
社区
课程
招聘
[求助]一个十分简单的问题1
发表于: 2009-2-10 21:31 2661

[求助]一个十分简单的问题1

2009-2-10 21:31
2661
_ProcWinMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
             local @stPs:PAINTSTRUCT
             local @stRect:RECT
             local @hDc
             mov eax,uMsg
             .if eax == WM_PAINT
             invoke BeginPaint,hWnd,addr @stRect
             invoke DrawText,@hDc,addr szText,-1,\
                    addr @stRect,\
                     DT_SINGLELINE OR DT_CENTER or DT_VCENTER
             invoke EndPatin,hWnd,addr @stPs
             .elseif eax == WM_CLOSE
                     invoke DestroyWindow,hWinMain
                     invoke PostQuitMessage,NULL
             .else
                  invoke DefWindowProc,hWnd,uMsg,wParam,lParam
                          ret
           .endif
           xor eax,eax
           ret
        _ProcWinMain endp
--------------------------------------------------------------
上面第一句[_ProcWinMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam]是什么意思?啊?
还有:
        mov eax,uMsg;
   这么uMsg怎么突然就传给eax?不懂。。我是初学者

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
函数原型声明。

uses指明要使用的寄存器,宏汇编会在函数开头保存之,在返回之前恢复之。

后面hWnd,uMsg,wParam,lParam是参数列表,与C中的函数声明的作用类似,声明以后就可以用invoke宏来调用该函数,宏汇编器会自动生成参数入栈的操作;并且声明后可以用参数名来引用栈上的参数,即你可以直接写mov eax, uMsg,汇编器自动生成类似这样的指令:mov eax,[ebp+0ch]
2009-2-10 23:01
0
游客
登录 | 注册 方可回帖
返回
//