機器碼
一組特定硬體(不光是計算機,手機、嵌入式系統等)能夠執行的程式碼,它是由0和1組成的二進位制序列。
不同的硬體平臺,執行同一個操作,對應的機器碼可能不同
指令
由於機器碼是有0和1組成的二進位制序列,可讀性實在太差,於是人們發明了指令。
指令就是把機器碼中特定的0和1序列,簡化成對應的指令(一般為英文簡寫,如mov,inc等),可讀性稍好
由於 不同的硬體平臺,執行同一個操作,對應的機器碼可能不同,所以 不同的硬體平臺的同一種指令(比如mov),對應的機器碼也可能不同。
指令集
不同的硬體平臺,各自支援的指令,是有差別的。因此每個平臺所支援的指令,稱之為對應平臺的指令集。 如常見的
- x86指令集,對應的是x86架構的平臺
- ARM指令集,對應的是ARM架構的平臺
組合語言
由於 指令 的可讀性還是太差,於是人們又發明了組合語言。
在組合語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label) 代替指令或運算元的地址。
在不同的硬體平臺,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。
三者關係
簡單理解就是
- 每一種硬體平臺對應一種機器碼
- 每一種機器碼對應一套指令集
- 每一套指令集對應一種組合語言