如何利用VC编写有汇编代码的跨平台代码
在C/C++中添加内联汇编很容易,只需要用__asm(VC中)或者__asm__(gcc/g++中)关键字就可以在C/C++中添加内联汇编了。但是VC中的内联汇编与gcc/g++中的内联汇编在格式不大相径庭,VC中使用的是Intel的语法格式,而gcc/g++使用的是AT&T语法格式。所以我们在编写跨平台的C/C++代码的时候,若有需要用到汇编代码的时候,就显得有点为难了!虽然我们可以编写两个版本的内联汇编,但是那样会多写一倍的汇编代码,而且调试了一个版本还得调试另一个版本,显得相当的麻烦。为了能让我们的代码能在不同平台使用,我们最好选用一个能支持跨平台的汇编器,笔者极力推荐使用NASM汇编器。下面就介绍一下如何在自己的项目中添加跨平台的外联汇编。
1.下载一个nasm并安装到你希望的目录中,如果你下载的是nasm的源文件,请编译成可执行文件. 2.设置nasm可执行文件路径添加到PATH环境变量中. 3.将写好的nasm汇编程序添加到项目中. 4.设置该汇编程序文件的自定义生成步骤:在命令行一栏中添加如nasm -fwin32 \((InputFileName) -g -o \)(OutDir)/\((InputName).obj所示命令;在输出一栏中添加\)(OutDir)/$(InputName).obj
如果你没有作第二个步骤,那就需要在第四步的命令行一栏的添加上nasm命令的绝对路径.
OK,至此,当我们在VC中编译连接我们的源文件的时候,我们添加的外联汇编源程序也会被编译连接.
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2007/2007-05-12-如何利用VC编写有汇编代码的跨平台代码/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。