Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 不同体系结构的汇编语言是否不同?_Assembly_Operating System_Programming Languages_Cpu Architecture - Fatal编程技术网

Assembly 不同体系结构的汇编语言是否不同?

Assembly 不同体系结构的汇编语言是否不同?,assembly,operating-system,programming-languages,cpu-architecture,Assembly,Operating System,Programming Languages,Cpu Architecture,我读到每个处理器都有自己的汇编语言,那么每个处理器都有自己的汇编语言还是架构? 操作系统和编程语言如何在不同的程序集上工作?每个体系结构都有自己的汇编语言。甚至在体系结构中,也可能有添加额外命令的扩展(如SSE扩展)。通常,编译器只能为一个体系结构创建代码,并且可能有一些可选标志,用于对扩展进行优化。当这些标志被启用时,程序通常只在支持这些扩展的处理器上运行 对于程序和操作系统,这通常意味着您应该只使用它们必须运行的体系结构的所有处理器所支持的编译器选项。如果这还不够优化,您必须为不同的优化提供

我读到每个处理器都有自己的汇编语言,那么每个处理器都有自己的汇编语言还是架构?
操作系统和编程语言如何在不同的程序集上工作?

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


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

汇编代码的过程是将以文本形式表示的代码翻译成二进制

基本上,可以说每个处理器都有自己的指令集。不同处理器的二进制代码根本不会运行——或者,如果平台差异很小,则运行并产生意外的结果(好吧,不是真的意外)。这就是为什么在不同的平台上存在针对同一程序/操作系统的多个安装包/CD/DVD

例如,
gcc
(GNU编译器集合)提供了相同的版本a(参见“下载gcc”),
从相同(高级)源代码构建,但针对不同的硬件体系结构。

您的第一个问题:更糟糕的是,不同的汇编程序对相同的体系结构使用不同的语法。你的第二个问题:操作系统不使用汇编程序,编译器会有自己的汇编程序。