【小白向教程】機器語言到底是怎么回事

編程語言從低到高可以分成三種:
機器語言-匯編語言-高級語言
物理層電路:

圖1:一個處理器的具體電路。(簡化版的處理器)
架構(gòu)

1X86架構(gòu) 大部分電腦上,個人計算機上使用的
(比如英特爾處理器,AMD處理器)
AM架構(gòu) 一般智能手機上使用的比較多
(比如安卓和蘋果手機)
MIPS結(jié)構(gòu) 國內(nèi)自主研發(fā)的處理器
(比如龍芯處理器)
CISC ,RISC代表指令集的復(fù)雜程度
CISC 代表復(fù)雜指令集(幾百條指令)
RISC代表精簡指令集(幾十條)


圖2
圖2解讀
1、第一個表格
OP=op code(指令類型)
告訴機器執(zhí)行相應(yīng)的電路操作。(長度6位)
rs,rt代表操作數(shù)(相當(dāng)于高級語言中的參數(shù))
rd代表目的操作數(shù),相當(dāng)于函數(shù)中的返回值
shamt代表移位操作,代表的是0
(一般R類型指令中不會用到)
func代表R類型中具體是哪一種
2、兩個個表格中的數(shù)字
add(加法指令)S0代表寄存器的名字
add $s0.$s1,$s2 指令意思是S0=S1+S2
轉(zhuǎn)換成二進制指令是 000000 10001 10010 10000 00000 100000
3、表格2
所有R類型的表對應(yīng)的操作碼
機器語言就是一個32位的一串?dāng)?shù)字,把它分割開來,每一段有特定的意義。
每條機器語言都是和匯編語言一一對應(yīng)的關(guān)系。
一條匯編語言可以寫成一條機器語言指令,一條高級語言必須寫成多條匯編語言,多條機器語言指令