使用可视化C++环境和"Asm"关键字作为汇编程序 IDE 的替代方法?

Use Visual C++ Environment and "Asm" keyword as alternative for Assembler IDE?

本文关键字:IDE 汇编程序 方法 关键字 C++ 可视化 环境 Asm      更新时间:2023-10-16

只需阅读一本C++书,您就可以通过使用asm关键字将汇编程序放入C++中。

这是否意味着,如果想使用Visual Studio编写汇编程序,我可以简单地创建一个C++的主方法,然后将汇编程序放入其中并将其作为C++程序执行?编译器将简单地运行汇编程序嵌入的C++就好像它只是一个汇编程序一样?

我的问题源于缺乏一个像样的汇编程序IDE。

当您使用 C++ 编译器时,它会向程序中添加不在 int main() 中的额外代码。如果你曾经反编译一个简单的hello world程序,你会发现它在int main()之前就开始执行,调用一些函数,如_set_app_type_getmainargs,然后最终调用你的int main()。对您来说最有趣的事情可能是调用 _getmainargs,因为它获取程序的命令行参数。如果你使用汇编程序(如NASM,FASM甚至GAS)编译你的程序集,它不会调用_getmainargs和其他人,所以你作为一个程序员必须实现你自己的方法来获取命令行参数,这对初学者来说可能很棘手。

只要您使用 volatile 关键字指定__asm,编译器就不应该修改您的汇编代码,它将像"汇编程序"。

如果您正在寻找用于组装的IDE,我可以告诉您,我已经走上了同样的道路。我使用FASM,这是一个很棒的小IDE,但是有Eclipse甚至Visual Studio的插件,尽管我不能说我对它们有很好的体验。

编辑:我想补充一点,如果你正在学习汇编,你可能最好用汇编程序学习它。当不能使用C++或更高语言时,会使用汇编的常见用法,因此,如果您依赖于C++编译器和内联汇编语法,则在尝试编写原始汇编时可能会导致混淆。