指令和指令系統(tǒng)概述
指令和指令系統(tǒng)概述
基本概念
指令:引起計(jì)算機(jī)執(zhí)行某種操作的最小的功能單位。
指令系統(tǒng):一臺計(jì)算機(jī)的全部指令的集合。
CISC:復(fù)雜指令系統(tǒng)計(jì)算機(jī)的簡稱。
RISC:簡化指令系統(tǒng)計(jì)算機(jī)的簡稱。
指令格式:一條指令由操作碼和操作數(shù)地址碼兩部分組成。一般是如下格式:
操作碼
?操作數(shù)地址碼?
操作碼:指明本條指令的操作功能。如算術(shù)運(yùn)算、邏輯運(yùn)算、存數(shù)、取數(shù)、轉(zhuǎn)移等。每條指令分配一個(gè)確定的操作碼。
操作數(shù)地址碼:指出該條指令涉及的操作數(shù)的地址。
操作碼:指明本條指令的操作功能。如算術(shù)運(yùn)算、邏輯運(yùn)算、存數(shù)、取數(shù)、轉(zhuǎn)移等。每條指令分配一個(gè)確定的操作碼。
操作數(shù)地址碼:指出該條指令涉及的操作數(shù)的地址。
一、操作碼的組織與編排
有三種組織方式:
1、定長的操作碼:每條指令的的操作碼均相同,即用固定長度的若干位表示操作碼。
優(yōu)點(diǎn):簡化了計(jì)算機(jī)的硬件設(shè)計(jì),提高了指令譯碼和識別速度。
缺點(diǎn):當(dāng)指令長度較短時(shí),操作數(shù)地址的位數(shù)就會(huì)嚴(yán)重不足。
因此定長的操作碼適用于計(jì)算機(jī)字長較長的計(jì)算機(jī)指令系統(tǒng)。
2、變長的操作碼:指令的的操作碼長度不盡相同,將使用頻率較高而地址碼要求較多的的指令用較少位表示操作碼;而對那些地址碼位數(shù)要求較少的指令,用較多位表示操作碼;對那些無操作數(shù)的指令,整個(gè)指令字均用作操作碼。
如PDP-11計(jì)算機(jī)是16位的小型機(jī),它的變長的操作碼舉例如下: 7位操作碼:? 0 1 1 1 X X X? 地址碼1? 地址碼2?
8位操作碼:
?1 0 0 0 0 X X X? 位移或常數(shù)?
10位操作碼:
?1 0 0 0 0 1 0 1 X X? 目標(biāo)地址?
16位操作碼:? 0 0 0 0 0 0 0 0 0 0 0 0 0 X X?
優(yōu)點(diǎn):在比較短的指令字中,既能表示出比較多的指令條數(shù),又能盡量滿足操作數(shù)地址的要求。
缺點(diǎn):增加了硬件設(shè)計(jì)的復(fù)雜性。
以上兩種方案,操作碼一般在指令字的最高位部分。
3、操作碼與操作數(shù)地址有所交叉的方案特點(diǎn):不同的指令操作碼長度不同,而且與表示操作數(shù)地址碼的字段有所交叉。
二、操作數(shù)地址的設(shè)計(jì)安排
1、無操作數(shù)指令:指令中不涉及操作數(shù)或使用約定的操作數(shù)。如停機(jī)指令、空操作指令、關(guān)中斷及堆棧操作指令。
2、單操作數(shù)指令:指令中只涉及一個(gè)操作數(shù)或還使用另一約定的操作數(shù)。例如:寄存器內(nèi)容加1、減1指令;與外設(shè)交換數(shù)據(jù)的指令,只在指令中指明外設(shè)地址,而把接受或送出的寄存器約定下來;另外一種情況是采用單一累加器的計(jì)算機(jī)中約定目的操作數(shù)和保存結(jié)果都使用唯一的累加器,指令中只表示一個(gè)源操作數(shù)即可。
3、雙操作數(shù)指令:指令中要指出目的操作數(shù)和源操作數(shù)的地址,其中目的操作數(shù)地址還用于保存運(yùn)算結(jié)果。
4、多操作數(shù)指令:如三操作數(shù)指令,指令中不僅要指出目的操作數(shù)和源操作數(shù)的地址,還要指出保存運(yùn)算結(jié)果的去處。
三、關(guān)于指令的分類
下面是按指令的功能來分類
1、算術(shù)與邏輯運(yùn)算指令:這是每臺計(jì)算機(jī)必須要有的指令。這類指令不僅給出運(yùn)算結(jié)果,還有結(jié)果的有關(guān)特征。
2、移位操作指令:包括算術(shù)移位(主要是右移)、邏輯移位、循環(huán)移位三種。
3、數(shù)據(jù)傳送指令:實(shí)現(xiàn)通用寄存器之間、存儲(chǔ)器之間、通用寄存器與存儲(chǔ)器之間、通用寄存器與外設(shè)接口之間的數(shù)據(jù)傳送。
4、轉(zhuǎn)移指令、子程序調(diào)用與返回指令:
轉(zhuǎn)移指令分為無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令兩種。二者相同之處是在指令中必須給出轉(zhuǎn)移地址;不同之處是條件轉(zhuǎn)移指令還必須在指令中給出轉(zhuǎn)移的條件(程序狀態(tài)字C、Z、V、S)。
子程序調(diào)用與返回指令是一種特殊的轉(zhuǎn)移指令,二者要配合使用。子程序又分為用戶自己編寫的子程序和軟件提供的子程序,對后者的訪問又被稱為訪問系統(tǒng)程序(訪管)指令、陷阱(TRAP)指令。
5、特權(quán)指令
用于操作系統(tǒng)或其他系統(tǒng)軟件的指令,一般不提供給用戶使用。
6、其他指令
四、關(guān)于操作數(shù)的來源、去處
1、CPU內(nèi)部的通用寄存器:例如 MOVE R2,R1
2、外設(shè)接口中的寄存器:例如 IN PORT
3、內(nèi)存儲(chǔ)器的一個(gè)存儲(chǔ)單元:例如 MOVE [R12],R1 load()?
非常好我支持^.^
(40) 100%
不好我反對
(0) 0%
相關(guān)閱讀:
- [工業(yè)控制] 西門子、三菱PLC編程指令大全收藏 2023-10-23
- [電子說] 如何在特權(quán)模式下用arm匯編指令使能和禁止irq中斷? 2023-10-19
- [機(jī)器人] 工業(yè)機(jī)器人ABB編程常用指令 2023-10-19
- [電子說] 工業(yè)機(jī)器人ABB編程常用指令 2023-10-19
- [電子說] PLC學(xué)習(xí)的基本指令類 2023-10-16
- [電子說] ARMv7-A指令集、架構(gòu)與處理器概述 2023-10-16
- [電子說] gvim中常用的一些指令介紹 2023-10-10
- [電子說] 匯編語言中常見的兩個(gè)指令 2023-10-09
( 發(fā)表人:admin )