彙編-vcIO.inc

之前寫的彙編程序中都包含了一個叫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了。

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