之前写的汇编程序中都包含了一个叫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了。