代码编译器 - 如何编译ASM代码?

时间:2013-12-22 08:53:35

标签: c++ assembly compiler-construction converter executable

我一直在用C ++编写一个编程语言编译器,它将我的代码转换为Assembly。但是,我不知道如何将此汇编代码转换为可执行格式(最好是.exe)。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

使用Microsoft Macro Assembler 8.0 (MASM) Package (x86)

Microsoft宏汇编程序8.0(MASM)是一种使用x86汇编语言程序并生成相应二进制文件的工具。

答案 1 :(得分:0)

汇编汇编代码而不是编译它,汇编程序就是你需要的工具。

您需要的确切汇编程序将取决于目标指令集 - 汇编语言实际上不是语言,它描述任何语言其中使用助记符表示单个机器代码指令。

即使对于单一体系结构,汇编语言语法也可能不同 - 例如在x86上至少有两种语法 - Intel and AT&T,因此即使对于x86,您也需要一个能够处理工具输出语法的汇编程序。您的工具当然需要输出汇编程序可以使用的东西,这可能意味着生成额外的汇编程序和目标特定指令,而不仅仅是原始的汇编程序助记符。

您的语言编译器输出C或C ++代码(严格来说是翻译器而不是编译器)可能更简单,这就是早期C ++“编译器”的工作方式(而且Comeau C ++仍然可以),您的语言至少可以在不同的架构之间轻松移植。 C编译器几乎与任何目标的汇编程序一样无处不在,但转换为C允许您为所有目标体系结构提供单个后端。