在win32環境下彙編,自然難免或必然要用到c標準函式,以下是彙編呼叫c標準函式的方法。
c標準函式包含在msvcrt.lib檔案中,此檔案在vc中可以找到。把它複製到彙編的庫目錄下,然後包含進去。
然後還需宣告你將要時用到的函式的原型,用如下語句:
c printf:dword
第一句宣告了printf函式有乙個dword型別的引數;第二種方法是宣告printf函式有不確定個dword型別的引數,這是printf函
數的特點。
然後就可以壓棧再call它了,甚至invoke。
下面給個例子:
.386
.model flat, stdcall
option casemap :none
include c:/masm32/include/windows.inc
include c:/masm32/include/kernel32.inc
includelib c:/masm32/lib/kernel32.lib
include c:/masm32/include/user32.inc
includelib c:/masm32/lib/user32.lib
includelib c:/masm32/lib/msvcrt.lib
;宣告printf之原型
printf proto c:dword,:vararg
;extern c printf:dword
.data
szcaption db 'hello', 0
sztext db 'hello!', 0
.code
start:
invoke messagebox, null, offset sztext, offset szcaption, mb_ok
//使用之
invoke printf, offset sztext
invoke exitprocess, null
end start
編譯連線,執行,咦?怎麼控制台上沒有列印出hello!字樣?那是當然,前後環境都沒設定單單呼叫個printf當然是什麼都不會有。
Win32彙編 測試Irvine32庫
測試修改cmd背景顏色,輸入輸出整數,輸出字串,列印記憶體內容等函式。測試 irvine32 庫 clrscr 清空控制台 crlf 輸出回車換行 dumpmem 列印記憶體內容 readint 輸入32位整數 settextcolor 設定背景和字型顏色 waitmsg 暫停執行,輸出等待資訊 w...
WIN32彙編的高階語法
1 條件測試語句 操作符和邏輯運算 操 作 用 途 等於變數和運算元之間的比較 不等於變數和運算元之間的比較 大於 變數和運算元之間的比較 大於等於 變數和運算元之間的比較 小於 變數和運算元之間的比較 小於等於 變數和運算元之間的比較 位測試將變數和運算元做 與 操作 邏輯取反 對變數取反或對表示...
win32 下使用資料庫
由於操作window下的資料庫,需要引用mfc的庫函式,所以得把mfc包含進來,如下圖中設定,以vs2008為例 use of mfc 中設定為 use mfc in a shared dll 接下來建立資料庫 cdaodatabase db 資料庫 cdaorecordset recset db ...