每种架构都有自己的汇编语言。即使在同一架构内,也可能存在添加额外命令的扩展(例如SSE扩展)。通常,编译器只能为一种架构创建代码,并且可能有可选标志,可以启用对扩展的优化。当启用这些标志时,程序通常只能在支持这些扩展的处理器上运行。对于程序和操作系统来说,这通常意味着您应该只使用所有该架构处理器都支持的编译器选项。如果这不够优化,您必须提供具有多个代码路径的可执行文件/库,以及在运行时选择正确的路径。
汇编代码的组装过程是将操作码(以文本形式表示)转换为二进制代码。基本上,可以说每个处理器都有自己的指令集。不同处理器的二进制代码简单地无法运行 - 或者如果平台差异只是微小的话,会运行并产生意外结果(实际上并不意外)。这就是为什么同一个程序/操作系统需要为不同的平台存在多个安装包/CD/DVD的原因。例如,gcc(GNU编译器集合)提供了相同版本的各种软件包(请参阅“下载gcc”),它们是从相同的(高级)源代码构建而成,但适用于不同的硬件架构。