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

📄 asm32.asm

📁 显示一个对话框(已包括可执行文件)
💻 ASM
字号:
;****************************************
;文件:ASM32.ASM                        *
;功能:显示一个对话框                   *
;****************************************
IDC_EDITTEXT  = 100				;EDIT控制的ID

.386p
.model flat,stdcall				;平坦内存模式,标准调用约定
include win32.inc				;包含有WIN32部分常量定义的文件
extrn MessageBoxA:proc
extrn ExitProcess:proc
extrn GetModuleHandleA:proc
extrn DialogBoxParamA:proc
extrn EndDialog:Proc
extrn SetDlgItemTextA:proc

.data 
	DialogName	db 'MyDialog',0
	CaptionFail	db '失败!',0
	TextFail	db 'API:DialogBoxParamA调用失败!',0
	TEXT		db '热烈欢迎',0
					
.code
;主过程
Start:
	call	GetModuleHandleA,0		;取得模块句柄,返回结果在eax中
	;调用DialogBoxParamA显示对话框
	call	DialogBoxParamA,eax,offset DialogName,0,offset DialogProc,0
	cmp		eax,0					;成功否?
	jnz		Exit					;成功则退出
	;显示出错信息
	call	MessageBoxA,0,offset TextFail,offset CaptionFail,MB_OK
Exit:
	call	ExitProcess,0			;退出进程
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++
;对话框消息处理过程	
DialogProc  proc uses ebx edi esi, hWnd:DWORD, wMsg:DWORD, wParam:DWORD, lParam:DWORD
	cmp		wMsg,WM_INITDIALOG
	jz		WmInitDialog
	cmp		wMsg,WM_CLOSE
	jz		WmClose
	cmp		wMsg,WM_COMMAND
	jz		WmCommand
	jmp		ExitProc
WmInitDialog:					;对话框初始化处理
	call	SetDlgItemTextA,hWnd,IDC_EDITTEXT,offset TEXT
	jmp		ExitProc
WmClose:						;用户按下了Alt-F4或单击右上角X按扭
	call	EndDialog,hWnd,1	;关闭对话框
	jmp		ExitProc
WmCommand:
	mov		ebx,wParam
	cmp		bx,IDOK				;是按下了“退出”键?
	jnz		ExitProc
	call	EndDialog,hWnd,1	;关闭对话框
	jmp		ExitProc
ExitProc:						;退出消息处理
	xor		eax,eax
	ret
DialogProc endp	

	end Start
	

⌨️ 快捷键说明

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