生活随笔
收集整理的這篇文章主要介紹了
Masm的汇编
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
; Hello.asm
; 使用 Win32ASM 寫的 Hello, world 程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令進行編譯和鏈接:
; ml /c /coff Hello.asm
; Link /subsystem:windows Hello.obj
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.386.model flat,stdcalloption casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定義
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 數據段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.data
szCaption db 'A MessageBox !',0
szText db 'Hello, World !',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代碼段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.code
start:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OKinvoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end start
.386代表了指令集(帶p代表可以使用特權指令)
? ? ? .model 內存模式[,語言模式][,其他模式] ? ? ? ? ? ? ? (內存模式影響最后生成的可執行文件的大小,win32只有一種flat模式即程序只有一個段 ? ? ?語言模式,為程序的是用什么類型實現,如調用子程序時是被調用程序壓棧,還是調用程序壓)
? ? .date .stack等偽指令的分段是因為有分頁機制,會定義這個段的屬性,與段寄存器那個段不是一個意思。
? ? ?invole 函數名[參數名]即為調用API,即push a,push b,call之類的。
? ? win32匯編很多與c語言很像
?
?
變量:
? ? ? 全局變量和局部變量:標號:目的指令 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?標號是局部變量,只對函數可見,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?標號::目的指令 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 標號是全局變量 ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不能從一個函數跳到另一個局部標號
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @@可以表示標號名,可以用@F或@B引用,這個標號名可以重復使用
? ? ? ? ? ? ? ? ? ? ?局部變量的實現,即將其壓入棧中,用ebp來表示局部變量
? ? ? ? ? ? ? ? ? ? ? ? 對局部變量取地址時,用addr指令,為lea eax ,[ebp-4]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?push eax
? ? ? ?
轉載于:https://www.cnblogs.com/xuehongyang/p/5483772.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Masm的汇编的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。