之前寫的彙編程序中都包含了一個叫vcIO.inc的頭文件
今天將簡單瞭解一下這個頭文件都幹了什麼事情
爲什麼要使用這個頭文件?
爲了在彙編語言中使用c語言的printf和scanf等函數進行格式輸出
這個頭文件存放在哪裏?
筆者的存放路徑是:D:\Visual Studio 2015\VC\include
即你安裝vs的目錄下的VC下的include文件夾中
下面是頭文件的內容:
; vcIO.inc declarations for standard I/O ,console I/O Function prototypes
; Copyright (c) FCL 2010. All rights reserved.
.686
.model flat,stdcall
option casemap:none ;case sensitive
; ===========================================================
; 彙編語言可以調用C/C++語言所有的庫函,只要對C語言庫函數的原型進行說明就可以。
includelib msvcrt.lib ; C語言中的 stdio.h conio.h 的動態鏈接庫
; C Run-Time Libraries (CRT)
; C語言I/O庫函數的原型說明
; Function prototypes
printf PROTO C : dword,:vararg ;vararg參數:變參,參數個數不確定
scanf PROTO C : dword,:vararg ;dword參數 :格式描述串的有效地址。
_getch PROTO C : vararg ;注意:所有的參數都是dword型!
_kbhit PROTO C : vararg
; ===========================================================
其中語句的含義:
- .686 指定CPU的指令集
- .model flat,stdcall 使用平坦內存模式,代碼和數據使用同一個4GB,stdcall是指API調用時右邊的參數先入棧
- option casemap:none 指大小寫不敏感
- includelib msvcrt.lib 包含vc的運行庫
- 下來是函數的聲明:
格式爲: 函數名 PROTO [語言類型] [,參數∶[類型]]…
之後再編寫彙編時只需要使用INCLUDE vcIO.inc就可以省去之前的聲明和定義,並在彙編程序中直接通過僞指令invoke就可以直接調用printf和scanf了。