第一個masm32彙編程序

         之前的彙編語言課學的是16位彙編,各種中斷調用不勝其煩,這學期的編譯原理開始使用masm32,編寫intel的32位彙編,有些不習慣。紀念一下第一個helloworld程序。

      

.486
.model flat, stdcall
option casemap: none
 
include D:\masm32\include\msvcrt.inc
include D:\masm32\include\kernel32.inc
 
includelib D:\masm32\lib\msvcrt.lib
includelib D:\masm32\lib\kernel32.lib
 
.data
    szText db 'Hello World!', 0
 
.code
start:
    invoke crt_printf, addr szText
    invoke ExitProcess, 0
end start

調用了自帶的msvcrt庫,比起之前的彙編語言沒有任何封裝的輸出,crt_printf函數還是很方便的。

invoke用法【轉】

invoke既可以調用WINDOWS API,也可以調用匯編子程序。
格式爲invoke 程序名,參數1,參數2,。。。。
參數2先入堆棧,參數1再入堆棧,以此類推
如invoke mysubpro,eax,ecx

編譯器會編譯成下面這個模樣:

push ecx
push eax
call mysubpro

invoke原文:http://blog.sina.com.cn/s/blog_3dc2673e0100027m.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章