Win32 一个helloworld对话框
生活随笔
收集整理的這篇文章主要介紹了
Win32 一个helloworld对话框
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib .data ;數(shù)據(jù)段
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?startMessageBox?API:
int?MessageBox(
????HWND?????hWnd,?????????;是否有父窗體
????LPCTSTR??lpText,??????;對話框中顯示的字符串起始地址,字符串必須以0結(jié)束
????LPCTSTR??lpCaption,???;對話框標(biāo)題字符串起始地址,字符串必須以0結(jié)束
????UINT?????uType?????????;表示對話框按鈕的形式
????);
uType:對話框的形式可以是以下種類
符號 數(shù)值 含義
MB_OK 0h 只顯示確定按鈕
MB_OKCANCEL 1h 顯示確定與取消
MB_ABORTRETRYIGNORE 2h 顯示終止,重試,掠過三個按鈕
MB_YESNOCANCEL 3h 顯示是,否,取消三個按鈕
MB_YESNO 4h 顯示是否,兩個按鈕
返回值:MessageBox的返回值保存在EAX寄存器中
符號 數(shù)值 含義
IDOK 1h 按下確定按鈕
IDCANCEL 2h 按下取消按鈕
IDABORT 3h 按下終止按鈕
IDRETRY 4h 按下重試按鈕
IDIGNORE 5h 按下忽略按鈕
IDYES 6h 按下是
IDNO 7h 按下否
uType對話框中的圖標(biāo):MB_OK?or?MB_ICONINFORMATION(顯示一個確定對話框和一個消息圖標(biāo))
MB_ICONWARNING 驚嘆號圖標(biāo)
MB_ICONINGORMATION 消息圖標(biāo)
MB_ICONASTERISK 危險圖標(biāo)
MB_ICONQUESTION 問號圖標(biāo)
MB_ICONSTOP 停止圖標(biāo)
invoke偽指令:調(diào)用API函數(shù)指令,相當(dāng)于CALL調(diào)用
ML.EXE編譯invoke時依次將參數(shù)入棧? ?.model定義了stdcall參數(shù)從右向左依次入棧?
??????????????最后的參數(shù)最先入棧??PUSH?MB_OK? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
PUSH?offset?titleS??????
PUSH?offset?messageS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
PUSH??NULL?????????????????
并調(diào)用CALL指令???CALL?MessageBox
MessageBox函數(shù)定義在user32.inc庫文件中
ExitProcess?API:結(jié)束程序
.data?定義數(shù)據(jù)段,?.code?定義代碼段 沒有結(jié)束偽指令,因?yàn)橐粋€段的開始即是前一個段的結(jié)束
程序的入口由end語句指明,end?start?程序從start標(biāo)號處執(zhí)行
總結(jié)
以上是生活随笔為你收集整理的Win32 一个helloworld对话框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。