【问题标题】:What is the difference between x86 assembly and other versions of assembly?x86 程序集和其他版本的程序集有什么区别?
【发布时间】:2013-08-04 20:38:06
【问题描述】:

据我了解,汇编编程语言有很多版本,例如 x86、ARM、MIPS、摩托罗拉等……它们可以在各种架构上运行。然而,这是为什么呢?组装是如何工作的?为什么我不能在不同的架构上使用一个版本的程序集。在最简单的层面上,我们当然只是在处理电流的流动,那么为什么会有这种限制,这些架构又有何不同?

此外,假设我想制作一个在自定义架构上运行的操作系统——我自己制作的。那么我是否必须创建自己的汇编语言?创建操作系统是否需要汇编语言?

【问题讨论】:

  • 导致这个问题的主要误解可能是组装不是那么低级。它通常不关心电信号——这种东西已经融入处理器的结构、物理晶体管和布线中。从某种意义上说,汇编只是告诉CPU它现在可以做的各种事情中的哪一个,但它可以选择的所有事情都是预先定义的。

标签: assembly x86 arm cpu-architecture instruction-set


【解决方案1】:

汇编语言在很大程度上只是一种人类可读/可管理的机器代码形式。处理器在机器代码、位和字节上运行。由于许多不同的原因,不同公司制造的不同处理器系列是不同的。就像不是所有的汽车都是一样的。处理器不同的一种方式是因为它们在不同的指令集、不同的机器代码、不同的 1 和 0 组合上运行。因此,从一种到另一种的汇编语言也会有所不同。此外,汇编语言通常由处理器创建者、设计处理器的个人/公司定义(并非总是如此,但经常如此)。就像他们制造不同的处理器一样,他们对汇编语言语法和其他选择有不同的习惯和愿望。所以汇编语言变化的另一个原因。就像并非所有汽车都使用相同尺寸的轮胎一样。

【讨论】:

    【解决方案2】:

    每个计算机架构都“说”自己的语言。汇编或多或少是机器语言到人类语言的一对一映射。因为机器语言不同,所以程序集也不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2019-04-10
      • 2019-02-23
      • 2011-04-15
      相关资源
      最近更新 更多