日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Masm的汇编

發布時間:2025/7/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的汇编的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。