汇编语言是否从一个架构到另一个架构不同?

时间:2015-12-23 10:40:39

标签: assembly operating-system programming-languages

我读到每个处理器都有自己的汇编语言,那么每个处理器都有自己的汇编或每个架构吗? OS和编程语言如何在不同的程序集上运行?

2 个答案:

答案 0 :(得分:3)

基本上,你可以说每个处理器都有自己的指令集。组装代码的过程是将opcodes翻译成二进制文件。这就是为不同平台提供相同程序/操作系统的多个程序包/ CD / DVD的原因。即GCC-4.8(GNU编译器集合)有各种硬件体系结构的多个二进制输出,尽管它们都是一个操作系统版本的一部分 - 在这种情况下就是Debian(SID)。

答案 1 :(得分:2)

每个架构都有自己的汇编语言。甚至在体系结构中也可能存在添加额外命令的扩展(如SSE扩展)。通常,编译器只能为一个体系结构创建代码,并且可能有可选的标志,可以对扩展进行优化。当这些标志启用时,程序通常只能在支持这些扩展的处理器上运行。

对于程序和操作系统,它通常意味着您应该只使用他们必须运行的体系结构的所有处理器支持的编译器选项。如果那不够优化,你必须为不同的优化提供具有多个代码路径的可执行文件/库,并在运行时选择正确的。