VS2017编写汇编并调用c库函数(msvcrt.lib)

前言

本文参考http://blog.csdn.net/sinat_27382047/article/details/70339455以及峰神的网站~~~~~~膜一发​ 本文提供了在Visual Studio 2017中利用masm依赖,在c++项目中编写、编译、运行汇编语言的方法。本文兼容Visual Studio 2012及以上版本。

新建空编项目

在2017最新版里,新建控制台应用程序里没有新建空项目选项了。改到了windows桌面导向,选择空项目,去掉安全检查



为项目添加masm依赖

在项目资源管理器中右键项目,点击生成依赖项,勾选 masm



设置subsystem

右键项目-属性,在属性面板中展开链接器-高级,将subsystem设置为ConsoleWindows

编写asm代码

源文件文件夹上右键添加-新项目,将.cpp文件重命名为.asm文件,并填入测试代码。


; AddTwo.asm - adds two 32-bit integers.
.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword
.code
main proc
    mov eax,5               
    add eax,6               
    invoke ExitProcess,0
main endp
end main

到此就可以在VS里调试汇编代码了。不过输入输出全靠bios 21h中断才能。low的不要要不要的。接下来我们尝试在汇编中调用一些c的函数。原理很简单啊,代码功能的实现其实都是由一些动态链接库完成的,我们在汇编中用c的方式调用这些动态链接库就好啦。
对于scanf printf需要用到masm中的msvcrt.lib。下载一个masm(随便哪个版本的masm都可以,只要你电脑系统兼容就好。如果怕麻烦,我把需要的两个库提取出来了,点这里下载)
在masm的安装目录中找到include文件夹和lib文件夹

在VS项目中配置
在这里添加你的masm的include文件夹



记得结尾加分号!!!

配置lib
链接器-通用-附加库目录
在这里添加你的masm的lib文件夹


测试代码

;PROG0409,文件名为hello.asm
.386
.model flat, stdcall
option casemap:none
; 说明程序中用到的库、函数原型和常量
includelib      msvcrt.lib
printf          PROTO C :ptr sbyte, :VARARG
; 数据区
.data
szMsg           byte    "Hello World! ", 0ah, 0
; 代码区
.code
start:
                invoke  printf, offset szMsg
                ret
end             start


Helloword!!!


最后推荐一个VS里的汇编高亮插件asmhighlighter


PS:汇编这种东西,一万年都没人弄一次,网上有的资料少得可怜。帮大家踩踩坑,希望对大家有帮助~~~

  • 22
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
LabVIEW调用库函数节点.rar是一个经过压缩的文件,其中包含了使用LabVIEW编程软件调用库函数节点所需要的文件及相关文档。 LabVIEW是一种图形化编程语言,可用于开发控制、测试和测量应用程序。它具有强大的功能和易于使用的界面,使得用户可以通过简单拖拽和连接节点来创建程序。LabVIEW还提供了许多库函数节点,这些节点可以加快开发过程并提供更丰富的功能。 库函数是预先编写好的一些函数,可以通过调用它们来完成特定的功能。在LabVIEW中,通过调用库函数节点可以将库函数集成到程序中。这种方式可以让用户直接使用库函数的功能,而无需编写大量的代码。 LabVIEW调用库函数节点.rar文件提供了一些预先编译好的库函数节点,这些节点可以帮助用户在LabVIEW中轻松地调用外部库函数。这个文件中可能会包含一些不同的文件和文档,如VI文件(LabVIEW的程序文件)、DLL文件(动态链接库文件)以及相关的文档和说明。 使用这个.rar文件,用户可以将库函数节点添加到自己的LabVIEW程序中,从而利用库函数的各种功能。通过调用这些库函数节点,用户可以在程序中实现更复杂的操作,比如高级的数学计算、图像处理、数据通信等。 总之,LabVIEW调用库函数节点.rar是一个方便用户使用LabVIEW编程软件调用库函数的文件,它为用户提供了更多的功能和选择,帮助用户在LabVIEW中开发出更强大、更高效的应用程序。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值