Win32 一个helloworld对话框

 
 
.386 .model flat,stdcall option casemap:none include windows.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib .data ;数据段 titleS db 'helloworld',0 messageS db 'hello,welcome to win32',0 .code ;代码段 start: invoke MessageBox, NULL ,offset  messageS ,offset  titleS , MB_OK invoke ExitProcess,NULL end start
MessageBox API:
int MessageBox(
    HWND     hWnd,         ;是否有父窗体
    LPCTSTR  lpText,      ;对话框中显示的字符串起始地址,字符串必须以0结束
    LPCTSTR  lpCaption,   ;对话框标题字符串起始地址,字符串必须以0结束
    UINT     uType         ;表示对话框按钮的形式
    );
uType:对话框的形式可以是以下种类	
	符号				数值		含义	
	MB_OK				0h		只显示确定按钮	
	MB_OKCANCEL			1h		显示确定与取消	
	MB_ABORTRETRYIGNORE		2h		显示终止,重试,掠过三个按钮	
	MB_YESNOCANCEL			3h		显示是,否,取消三个按钮	
	MB_YESNO			4h		显示是否,两个按钮

返回值:MessageBox的返回值保存在EAX寄存器中	
	符号			数值		含义	
	IDOK			1h		按下确定按钮	
	IDCANCEL		2h		按下取消按钮	
	IDABORT			3h		按下终止按钮	
	IDRETRY			4h		按下重试按钮	
	IDIGNORE		5h		按下忽略按钮	
	IDYES			6h		按下是	
	IDNO			7h		按下否

uType对话框中的图标:MB_OK or MB_ICONINFORMATION(显示一个确定对话框和一个消息图标)	
	MB_ICONWARNING		惊叹号图标	
	MB_ICONINGORMATION	消息图标	
	MB_ICONASTERISK		危险图标	
	MB_ICONQUESTION		问号图标	
	MB_ICONSTOP		停止图标
invoke伪指令:调用API函数指令,相当于CALL调用
ML.EXE编译invoke时依次将参数入栈 	 .model定义了stdcall参数从右向左依次入栈 
              最后的参数最先入栈  PUSH MB_OK                               
 				PUSH offset titleS      				
				PUSH offset messageS                                
				PUSH  NULL                 
		并调用CALL指令   CALL MessageBox
MessageBox函数定义在user32.inc库文件中

ExitProcess API:结束程序

.data 定义数据段, .code 定义代码段
没有结束伪指令,因为一个段的开始即是前一个段的结束

程序的入口由end语句指明,end start 程序从start标号处执行
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值