【发布时间】:2010-06-20 17:29:58
【问题描述】:
我的理解是编译器将高级语言转换为机器代码。我有一个关于编译器(比如 VC++)是否也使用汇编器的问题?我记得每当发生崩溃或类似情况时,我都会看到汇编代码。
【问题讨论】:
-
汇编程序只是机器指令(代码位)到一些助记符(如
mov ax, bx)的一对一映射。这就是为什么您可以毫不费力地将汇编代码转换为机器代码并返回的原因。编译器做的工作要复杂得多,源代码和生成的代码之间没有一对一的关系(无论是直接的机器代码还是汇编指令)。这就是为什么你通常看不到二进制代码的源代码。 -
ony:用于非符号、非宏后端汇编程序。但即使是 GAS 输出也是象征性的。
标签: compiler-construction assembly