我听说汇编语言取决于CPU,而且.exe文件几乎可以在所有Windows机器上运行。让我想知道它是如何工作的?
这是否意味着只有少数汇编语言?
或 Windows系统是否进行某种转换以适应不同类型的CPU?
答案 0 :(得分:3)
简单的回答:
它们不能在“不同的CPU”上执行。
更复杂的答案:
大多数运行Windows的计算机只使用两种不同类型的CPU:x86或x86-64。
然后有所谓的“.NET”可执行文件。这些可执行文件不包含任何机器代码,但它们包含特殊的字节代码(类似于Java程序)。
当您在某台计算机上第一次运行该程序时,Windows会将该字节代码转换为适合您运行该程序的计算机的机器代码。如果在ARM计算机上运行程序,则字节代码将转换为ARM程序。
计算机实际上将执行“翻译”,而不是原始的“.NET”可执行文件。
因为“翻译”是针对特定计算机完成的,所以不需要在不同的CPU上执行。