代码编译器-如何编译ASM代码
Code Compiler - How to compile the ASM code?
我一直在用C++制作一个编程语言编译器,它将我的代码转换为Assembly。然而,我不知道如何将此程序集代码转换为可执行格式(最好是.exe)。我该怎么做?
使用Microsoft宏汇编程序8.0(MASM)包(x86)
Microsoft Macro Assembler 8.0(MASM)是一个使用x86汇编语言程序并生成相应二进制文件的工具。
您汇编汇编代码,而不是编译,汇编程序就是您需要的工具。
您需要的确切汇编程序将取决于目标指令集-汇编语言实际上不是一种语言,它描述了 任何使用助记符表示单个机器代码指令的语言即使对于单个体系结构,汇编语言语法也可能有所不同——例如,在x86上,至少有两种语法——Intel和at&T、 因此,即使对于x86,您也需要一个能够处理工具输出的任何语法的汇编程序。当然,您的工具需要输出汇编程序可以使用的内容,这可能意味着生成额外的汇编程序和特定于目标的指令,而不仅仅是原始的汇编助记符。 对于您的语言编译器来说,输出C或C++代码可能更简单(严格来说是翻译器而不是编译器),这就是早期C++"编译器"的工作方式(Comeau C++仍然如此),这样您的语言至少可以更容易地在不同的体系结构之间移植。C编译器几乎和任何目标的汇编程序一样普遍,但转换为C可以为所有目标体系结构提供一个单一的后端。
相关文章:
- 如何修复sfml c++代码编译错误
- 尝试用java代码编译和运行c++代码
- 此代码编译良好,但文件未创建?请指出错误
- 为什么我的 BaseClass:Method 代码编译(带有单冒号)?
- 代码编译没有任何输出,入门程序
- 通过Python Distutils(用于Python C扩展)使用可重定位的设备代码编译CUDA代码
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- 无法使用 g++ 使用C++代码编译 C 库
- 如何在Ubuntu中使用Visual Studio代码编译C++代码
- 推力+提升代码编译错误
- C++代码编译,但在 Zorin OS 上运行时显示错误
- 如何在使用模板时将 CPP 代码编译到库文件中
- 是否可以将Visual Studio 2017将C 代码编译到EXE以外的文件类型中
- 使用 Visual Studio for C++ 代码编译错误
- 使用 Android Studio 使用本机代码编译 apk 时,如何在链接处删除 libgnustl_static.
- 使用 Emscripten 将 OpenCV 代码编译C++ Javascript
- 将C 代码编译到独立应用程序.App
- 为什么此代码编译 (C++11) 而没有类型不匹配错误
- 重用编译器前端的结果,以加快多个配置/平台的C++代码编译
- 如何将C++11代码编译为网络汇编