Win32 一个helloworld对话框
生活随笔
收集整理的這篇文章主要介紹了
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?startMessageBox?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標號處執行
總結
以上是生活随笔為你收集整理的Win32 一个helloworld对话框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标志寄存器FLAG
- 下一篇: 治疗前列腺需要多少钱啊?