計算機指令和指令集什麼意思
要清楚這個問題,就必須先了解什麼是計算機指令。
如上圖,每條指令都包含操作碼和運算元兩部分。
以 MOV AX , 3050H 指令為例:
指令操作碼和運算元
這條指令中,MOV是操作碼,對應十六進位制數1000H,運算元是3050H。
這條指令的目的是把數字3050H存放到暫存器AX中。
AX是一個十六位暫存器。下圖是一個一位暫存器電路,也就是說,AX由類似的十六個這樣的電路構成。
一位暫存器電路
指令中的3050H是一個十六位的二進位制數字,下圖電路用來儲存一位二進位制數字,同樣,3050H這個數字需要十六個這樣的電路構成。
一位二進位制數字儲存電路
而MOV這個指令本身對應的操作碼1000H需要一個指令譯碼器來完成,下圖是示意圖。
指令執行示意圖
假設操作碼1000H由譯碼器的輸入端A,B,C,D,……輸入,譯碼器的輸出端Y1,Y2,Y3,……。。右邊連線著儲存數字3050H的電路,左邊連線著AX這個暫存器電路,那麼,當把操作碼1000H輸入譯碼器輸入端以後,3050H這個數字就會被存入AX暫存器中。不同的操作碼對應於不同的指令,要實現這個目的,整個計算機指令執行和控制電路就必須有一個整體上的設計思想。
鐵路看控制檯
上面指令執行的原理和我們常常看到的各種控制檯相似。例如火車站控制檯,按下某些按鈕之後,就可以實現某些鐵軌的轉向、並軌功能。
鐵軌
從上述敘述中可以看出,指令是透過對於已經設計好的電路進行不同的操作實現的,所以指令集本身無法儲存,硬要說儲存的話,指令集就儲存在已經設計好的計算機CPU裡面的控制器的電路中。
我們常數的指令集架構,指的是計算機中央處理器機器碼所使用的指令的集合以及其背後的暫存器體系、匯流排設計等邏輯框架,其實就是這個指令集對應的電路設計。
我們知道,華為海思所設計的晶片目前來說都是基於arm的公版架構而來,其實就是指海思所設計的晶片採用了ARM晶片的整體電路設計思想。
上一篇:白剛玉用在什麼地方