c++ - 将高级语言编译成机器码

标签 c++ assembly compiler-construction machine-code

在阅读了网站上的一些答案并查看了一些源代码后,我认为编译器将高级语言(例如 C++)直接转换为机器码,因为计算机本身不需要将其转换为汇编,它仅将其转换为程序集供用户查看代码,并在需要时可以对代码进行更多控制。

但是这是在我的一张讲义上找到的,所以如果有人能进一步解释并纠正我,如果我错了,或者下面的截图,我将不胜感激。

Slide

最佳答案

您的幻灯片大部分是错误的...

汇编代码和机器代码之间存在一对一的映射。汇编是信息的文本表示,机器代码是二进制表示。

然而,有些机器支持额外的汇编指令,但生成的汇编代码中包含哪些指令仍然是在编译时确定的,而不是运行时。但一般来说,这取决于系统中的处理器(intel、amd、ti、nvidia 等),而不是您购买整个系统的制造商。

关于c++ - 将高级语言编译成机器码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964836/

相关文章:

C++ windows32 winsock UDP路由?

c++ - 如何在C++中将字符串转换为json格式?

assembly - 处理(可能)从JITed cod提前调用的编译函数的调用

c - Bison解析全局变量和函数

Java 编译器 : Stop complaining about dead code

c++ - Std::pair/ostringstream 构造函数语法

assembly - lisp 是如何用汇编语言实现的?

c - 为什么我的 char[30] 堆栈增加到 0x38

assembly - MIPS 从内存地址返回值

c++ - 我的窗口句柄未使用,无法评估