汇编-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了。

你可能感兴趣的:(汇编)