机器码 指令 汇编语言 的关系

4,532 阅读2分钟

机器码

一组特定硬件(不光是计算机,手机、嵌入式系统等)能够执行的代码,它是由0和1组成的二进制序列。

不同的硬件平台,执行同一个操作,对应的机器码可能不同

指令

由于机器码是有0和1组成的二进制序列,可读性实在太差,于是人们发明了指令。

指令就是把机器码中特定的0和1序列,简化成对应的指令(一般为英文简写,如mov,inc等),可读性稍好

由于 不同的硬件平台,执行同一个操作,对应的机器码可能不同,所以 不同的硬件平台的同一种指令(比如mov),对应的机器码也可能不同。

指令集

不同的硬件平台,各自支持的指令,是有差别的。因此每个平台所支持的指令,称之为对应平台的指令集。 如常见的

  • x86指令集,对应的是x86架构的平台
  • ARM指令集,对应的是ARM架构的平台

汇编语言

由于 指令 的可读性还是太差,于是人们又发明了汇编语言。

在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label) 代替指令或操作数的地址

在不同的硬件平台,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

三者关系

简单理解就是

  • 每一种硬件平台对应一种机器码
  • 每一种机器码对应一套指令集
  • 每一套指令集对应一种汇编语言