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

📄 simple.asm

📁 win32ASM教程
💻 ASM
字号:
.386p

.MODEL flat,stdcall

INCLUDE SIMPLE.INC

WinMain			PROTO stdcall,	:HINSTANCE,:HINSTANCE,:LPSTR,:DWORD

.STACK 4096

.DATA
	WindowClass	BYTE		'SIMPLE',0
	WindowTitle	BYTE		'SIMPLE',0
	hInst1		HINSTANCE	0
	lpCmdLine1	LPSTR		0
	
.CODE

_start:
	INVOKE	GetModuleHandleA,NULL
	mov	hInst1,eax
	INVOKE	GetCommandLineA
	mov	lpCmdLine1,eax
	INVOKE	WinMain,hInst1,NULL,lpCmdLine1,SW_SHOWDEFAULT
	INVOKE	ExitProcess,eax		

WinMain	PROC	hInst:HINSTANCE,hPrevInst:HINSTANCE,lpCmdLine:LPSTR,nShowCmd:DWORD
	LOCAL	wcex:WNDCLASSEXA
	LOCAL	hWnd:HWND
	LOCAL	msg:MSG
	.IF	!hPrevInst
		mov	wcex.cbSize,SIZEOF WNDCLASSEXA
		mov	wcex.style,CS_HREDRAW or CS_VREDRAW
		mov	wcex.cbClsExtra,0
		mov	wcex.cbWndExtra,0
		mov	wcex.lpfnWndProc,OFFSET WndProc
		mov	eax,hInst
		mov	wcex.hInstance,eax
		INVOKE	LoadIconA,hInst,IDI_APPLICATION
		mov	wcex.hIcon,eax
		INVOKE	LoadCursorA,0,IDC_ARROW
		mov	wcex.hCursor,eax
		mov	wcex.hbrBackground,COLOR_WINDOW+1
		mov	wcex.lpszMenuName,NULL
		mov	wcex.lpszClassName,OFFSET WindowClass
		INVOKE	LoadIconA,hInst,IDI_APPLICATION
		mov	wcex.hIconSm,eax
		INVOKE	RegisterClassExA,ADDR wcex
		.IF	!eax
			mov	eax,FALSE
			ret
		.ENDIF
	.ENDIF
	INVOKE	CreateWindowExA,0,ADDR WindowClass,ADDR WindowTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0,hInst,NULL
	mov	hWnd,eax
	.IF	!eax
		mov	eax,FALSE
		ret
	.ENDIF
	INVOKE	ShowWindow,hWnd,nShowCmd
	INVOKE	UpdateWindow,hWnd
	.WHILE	TRUE
		INVOKE	GetMessageA,ADDR msg,0,0,0
		.BREAK	.IF	!eax
		INVOKE	TranslateMessage,ADDR msg
		INVOKE	DispatchMessageA,ADDR msg
	.ENDW
	mov	eax,msg.wParam
	ret
WinMain ENDP

WndProc	PROC	hWnd:HWND,message:UINT,wParam:DWORD,lParam:DWORD
	LOCAL	hDC:HDC
	LOCAL	ps:PAINTSTRUCT
	.IF	message==WM_PAINT
		INVOKE	BeginPaint,hWnd,ADDR ps
		mov	hDC,eax
		INVOKE	EndPaint,hWnd,ADDR ps
		mov	eax,0
		ret
	.ELSEIF	message==WM_DESTROY
		INVOKE	PostQuitMessage,0
		mov	eax,0
		ret
	.ELSE
		INVOKE	DefWindowProcA,hWnd,message,wParam,lParam
		ret
	.ENDIF
	mov	eax,0ffffffffh
	ret
WndProc ENDP

PUBLIC _start

END

⌨️ 快捷键说明

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