【发布时间】:2021-04-23 19:44:10
【问题描述】:
我知道这已经被问过很多次了,但我正在寻找一个简单的解释。
假设我有一些 C++ 编译器生成的汇编代码。
现在汇编器开始工作,它必须将汇编代码转换为机器代码。
问题1)。 C++汇编编译器会看每条汇编指令有对应机器码指令的表格吗?
问题2)。 如果C++程序运行在intel处理器上,那么汇编程序需要看一下Intel团队发布的表格,对吧?因为最终,C++程序运行在intel处理器上。
问题 3)。 如果我对问题 2 的看法是正确的,那么用 C++ 编写的程序怎么可能在使用 Intel 的计算机和使用 AMD 处理器的计算机上运行? ?
【问题讨论】:
-
Intel 和 AMD 都使用相同的指令集架构,它定义了所有机器代码的含义。
-
x86 或 AMD64 取决于 32 位或 64 位。
-
尽管大多数现代 C++ 编译器(MSVC、GCC、Clang)不会生成程序集,而是直接从内部表示到机器代码。
-
....我被证明是错的 ;)
标签: c++ assembly intel processor