我已经在很多地方读过,汇编语言通常不用于创建完整的程序,但其他程序使用它来使某些程序更有效,特别是那些被称为每秒几千次的程序.我想知道如何将小部分汇编代码合并到更大的程序中.
我认为可以制作一个小的可执行文件然后从另一个程序运行,但这似乎效率低下.
然后我考虑了Visual Studio的内联汇编,但这是微软特有的,似乎会有更好的方法.
那么如何在不创建单独的程序或使用Visual Studio内联汇编的情况下在较大的程序中使用少量汇编代码?
内联汇编不是特定于Visual Studio - GCC也支持它.内联汇编通常是将汇编合并到程序中的最简单方法.但是有几个问题 - 它可能会极大地影响代码的可移植性,而且有些编译器不支持它 - 例如,Microsoft的x64编译器不支持它.
对于不支持内联汇编或希望包含所有特定于机器的代码的编译器,通常将汇编语言特定部分分离到它们自己的文件中,将汇编代码公开为C++代码可以调用的函数.然后组装并链接它们作为构建的一部分.您的链接器不关心用于生成目标文件的语言 - 它可以将多种语言的目标文件组合到一个程序中.