Win32下的彙編呼叫C標準庫函式

2021-06-15 22:36:09 字數 1090 閱讀 9613

在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 ...