【发布时间】:2017-03-10 10:04:06
【问题描述】:
参考:http://www.cplusplus.com/articles/2v07M4Gy/
在编译阶段,
此阶段将程序转换为低级汇编级代码。编译器采用预处理文件(没有任何指令)并生成一个包含汇编级代码的目标文件。现在,创建的目标文件是二进制形式。在创建的目标文件中,每一行描述一个低级机器级指令。
现在,如果我是正确的,那么不同的 CPU 架构适用于不同的汇编语言/语法。
我的问题是编译器如何知道源代码必须更改为哪种汇编语言语法?换句话说,C++ 编译器如何知道它正在运行的机器中的 CPU 架构是什么?
汇编器是否使用任何与 CPU 架构相关的映射来为不同的 CPU 架构生成汇编代码?
NS:我是初学者!!
【问题讨论】:
-
因为编译器本身已经构建为针对显式目标体系结构?或者如果它支持多种架构,它知道本机架构并将其用作默认架构?
-
“架构”这个名字已经清楚地表明,除了不同的汇编语言之外,还有更多的差异。
-
除非您使用所谓的“交叉编译器”,否则大多数编译器都会为它们运行的操作系统编写代码