⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tut22.html

📁 WINDOWS程序员使用指南--汇编基础
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
mov wc.hCursor,eax</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
invoke RegisterClassEx, addr wc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
invoke CreateWindowEx,WS_EX_CLIENTEDGE+WS_EX_CONTROLPARENT,ADDR ClassName,ADDR
AppName,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_VISIBLE,CW_USEDEFAULT,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
CW_USEDEFAULT,350,220,NULL,NULL,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
hInst,NULL</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
mov hwnd,eax</font></font></font></b>
<p><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.while TRUE</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetMessage, ADDR msg,NULL,0,0</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.BREAK .IF (!eax)</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke TranslateMessage, ADDR msg</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke DispatchMessage, ADDR msg</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.endw</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;
mov eax,msg.wParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>WinMain
endp</font></font></font></b>
<p><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>WndProc
proc uses ebx edi hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
LOCAL wc:WNDCLASSEX</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.if uMsg==WM_CREATE</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov wc.cbSize,sizeof WNDCLASSEX</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetClassInfoEx,NULL,addr EditClass,addr wc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
push wc.lpfnWndProc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop OldWndProc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov wc.lpfnWndProc, OFFSET EditWndProc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
push hInstance</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop wc.hInstance</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov wc.lpszClassName,OFFSET OurClass</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke RegisterClassEx, addr wc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor ebx,ebx</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov edi,20</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.while ebx&lt;6</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR OurClass,NULL,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WS_CHILD+WS_VISIBLE+WS_BORDER,20,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
edi,300,25,hWnd,ebx,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
hInstance,NULL</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov dword ptr [hwndEdit+4*ebx],eax</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add edi,25</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
inc ebx</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endw</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetFocus,hwndEdit</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.elseif uMsg==WM_DESTROY</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke PostQuitMessage,NULL</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.else</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke DefWindowProc,hWnd,uMsg,wParam,lParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
xor eax,eax</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>WndProc
endp</font></font></font></b>
<p><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>EditWndProc
PROC hEdit:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.if uMsg==WM_CHAR</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov eax,wParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if (al>="0" &amp;&amp; al&lt;="9") || (al>="A" &amp;&amp; al&lt;="F")
|| (al>="a" &amp;&amp; al&lt;="f") || al==VK_BACK</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if al>="a" &amp;&amp; al&lt;="f"</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
sub al,20h</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke CallWindowProc,OldWndProc,hEdit,uMsg,eax,lParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;
.elseif uMsg==WM_KEYDOWN</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov eax,wParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if al==VK_RETURN</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke MessageBox,hEdit,addr Message,addr AppName,MB_OK+MB_ICONINFORMATION</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetFocus,hEdit</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.elseif al==VK_TAB</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetKeyState,VK_SHIFT</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
test eax,80000000</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if ZERO?</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetWindow,hEdit,GW_HWNDNEXT</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if eax==NULL</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetWindow,hEdit,GW_HWNDFIRST</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.else</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetWindow,hEdit,GW_HWNDPREV</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if eax==NULL</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetWindow,hEdit,GW_HWNDLAST</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetFocus,eax</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
xor eax,eax</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.else</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke CallWindowProc,OldWndProc,hEdit,uMsg,wParam,lParam</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FF6600"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ret</font></font></font></b>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -