指令操作碼與位址碼

2022-02-08 06:54:47 字數 2360 閱讀 5849

指令字

(簡稱指令)即表示一條指令的機器字。

指令格式則是指令字用二進位制**表示的結構形式,由操作碼欄位和位址碼字段組成。操作碼字段表徵指令的操作特性與功能;位址碼字段通常指定參與操作的運算元的位址。

操作碼字段

位址碼字段

指令系統的每一條指令都有乙個操作碼,它表示該指令應進行什麼性質的操作。不同的指令用操作碼欄位的不同編碼來表示,每一種編碼代表一種指令。組成操作碼欄位的位數一般取決於計算機指令系統的規模。例如,乙個指令系統只有8條指令,則有3位操作碼就夠;如果有32條指令,那麼就需要5位操作碼。

對於乙個機器的指令系統,在指令字中操作碼欄位和位址欄位產讀通常是固定的。在微控制器中,由於指令字較短,為了充分利用指令字長度,指令字的操作碼欄位和位址碼欄位是不固定的,即不同型別的指令有不同的劃分,以便盡可能用較短的指令字長來表示越來越多的操作種類,並在越來越多的儲存空間中定址。

根據一條指令中有幾個運算元位址,可將該指令稱為幾運算元指令或幾位址指令。

一般的運算元有被運算元、運算元及操作結果這三種數,因而就形成了三位址指令格式。在此基礎上,後來又發展成二位址格式、一位址格式和零位址格式

操作碼

a1

a2

a3

三位址指令

操作碼

a1

a2

二位址指令

操作碼

a1

一位址指令

操作碼

零位址指令

注意

(1)零位址指令的指令字中只有操作碼,而沒有位址碼。

(2)一位址指令常稱為單運算元指令。通常這種指令以運算器中累加暫存器ac中的資料為被運算元,指令字的位址碼欄位所指明的數為運算元,操作結果又放回累加暫存器ac中。

(ac) op (a) -> ac

op表示操作性質;(ac)表示累加暫存器ac中的數;(a)表示記憶體中位址為a的儲存單元中的數或運算器中位址為a的通用暫存器中的數; →表示把操作(運算)結果傳送到指定的地方。

(3)二位址指令常稱為雙運算元指令,它的兩個位址碼字段分別指明參與操作的兩個數在記憶體中或運算器中通用暫存器的位址,a1作存放操作結果的位址。

(a1) op (a2) -> a1

(4)三位址指令字中有三個運算元位址。

(a1) op (a2) -> a3

a1為被運算元位址,也稱源運算元位址; a2為運算元位址,也稱終點運算元位址; a3為存放結果的位址。 同樣,a1,a2,a3以是記憶體中的單元位址,也可以是運算器中通用暫存器的位址。

二位址指令格式中,從運算元的物理位置來說,又可歸結為三種型別。

儲存器-儲存器(ss)型指令

:操作時都是涉及記憶體單元,參與操作的數都放在記憶體裡,從記憶體某單元中取運算元,操作結果存放至記憶體另一單元中,因此機器執行這種指令需要多次訪問記憶體。

暫存器-暫存器(rr)型指令

:需要多個通用暫存器或個別專用暫存器,從暫存器中取運算元,把操作結果放到另一暫存器。機器執行暫存器-暫存器型指令的速度很快,因為執行這類指令,不需要訪問記憶體。

暫存器-暫存器(rs)型指令

:執行此類指令時,既要訪問記憶體單元,又要訪問暫存器。

在設計擴充套件操作碼指令格式時,必須注意以下兩點:

1、不允許短碼是長碼的字首,即短操作碼不能與長操作碼的前面部分的**相同。

2、各指令的操作碼一定不能重複

指令操作碼擴充套件

題一 某計算機指令字長為16位,指令有雙運算元 單運算元和無運算元3種格式,每個運算元欄位均用6位二進位制表示,該指令系統共有m條 m 16 雙運算元指令,並存在無運算元指令。若採用擴充套件操作碼技術,那麼最多還可設計出 條單運算元指令。a 2 6 b 2 4 m 2 6 1 c 2 4 m 2 6...

組成原理 指令格式 位址碼)

根據一條指令中有幾個運算元位址,可將該指令稱為幾運算元指令或幾位址指令。三位址指令 功能描述 a1 op a2 a3 pc 1 pc 解釋 a1內的資料和a2內的資料進行某種操作 op 把操作結果放到a3這個位址單元中 注 a1,a2,a3是位址碼,表示位址資訊。表示取位址碼所在的儲存單元內的資訊。...

擴充套件操作碼技術

方法一 固定操作碼的設計方式 0000 x yyyy zzzz 1111 x yyyy zzzz 16條三位址指令 方法二 可變操作碼的設計方法 擴充套件方式1 0000 x yyyy zzzz 1110 x yyyy zzzz 15條三位址指令 1111 0000 x yyyy 1111 1110...