使用可视化C++环境和"Asm"关键字作为汇编程序 IDE 的替代方法?
Use Visual C++ Environment and "Asm" keyword as alternative for Assembler IDE?
只需阅读一本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++编译器和内联汇编语法,则在尝试编写原始汇编时可能会导致混淆。
- C++:如何在CLion IDE中安装Boost
- IDE (CLion) 无法解析C++模板类型
- macOS 是内置在 clang 编译器中还是内置于 xcode ide 中?
- 为什么编程语言被编译为汇编程序而不是二进制?
- 为什么联机C++ IDE 不支持"graphics.h"头文件?
- Arduino IDE 中使用 strncmp 函数时出错
- C++ IDE 不会推断/自动完成对模板类中的 std::array 下标表达式的成员访问
- 使用 TDM-GCC 4.9.2 的 DevC++ IDE 中的额外限定错误
- C++ 程序在代码块 IDE 中不起作用
- 程序在CLion IDE中工作,但exe不起作用
- MSBuild 由于缺少属性文件(可能与 IDE 相关)而无法生成 Visual Studio 项目
- IDE 认为函子是构造函数?
- 如何使用VB经典IDE在VB脚本中调试ActiveX应用程序
- VIsual Studio:避免控制台弹出,而是将其集成到IDE中
- C++头和实现,(为什么)它不是由IDE/编译器自动处理的
- Eclipse IDE C/C++ 自动包含来自定制构建脚本的路径
- 为什么以下代码在在线 ide(gcc 7.2.0) 上有效,但在 ubuntu 上出现错误?
- Arduino IDE 错误 - 无法找到数字文字运算符"运算符""f900ff"
- 无法在代码块 IDE 中打开输出文件.exe
- 使用可视化C++环境和"Asm"关键字作为汇编程序 IDE 的替代方法?