【考研筆記】計算機組成原理與思維導圖(三)第三章 指令系統

計算機組成原理與思維導圖(三)

喜歡的話請給個關注或者點個贊再走吧,你們的支持是我創作的動力!
謝謝你們 祝大家早日上岸 點個收藏吧!後續會有考研真題更新哦!

第三章 指令系統

一、基本概念

基本概念: 指令指令系統 是計算機最基本的概念,指令計算機執行某些操作的 代碼。一臺計算機 所有指令的集合 構成該機的指令系統,也稱 指令集

指令本質上都是機器語言,也就是字節

單字長指令 爲一個字節,雙字長指令 爲爲兩個字節。

二、指令格式

1、機器指令的基本格式

一條指令就是機器的一條語句,它是一組有意義的二進制代碼,指令的基本格式。指令的選擇和確定不僅涉及 操作碼字段地址碼字段 還涉及 指令長度如下
在這裏插入圖片描述

(一) 操作碼字段

操作碼: 指明瞭指令 操作性質功能

(二) 地址碼字段

地址碼: 給出了 操作數地址

(三) 指令長度

指令長度: 指令長度是指一段二進制指令代碼的 位數 。它的長度取決於 操作碼字段 的長度、操作數地址的個數、長度

(四) 半字長指令長度

半字長指令長度: 指令長度 = 半個機器字長的指令

PS: 機器字長是指計算機進行一次整數運算所能處理的二進制數據的位數

(五) 單字長指令長度

單指令長度: 指令長度 = 一個機器字長的指令

單字長指令 爲一個字節

(六) 雙字長指令長度

雙指令長度: 指令長度 = 兩個機器字長的指令

雙字長指令: 爲兩個字節

(七) 定長指令字結構

在一個指令系統中,所有指令的長度都是 相等 的。

(八) 變長指令字結構

在一個指令系統中,所有的指令系統長度因功能 而異

2、地址碼結構

例如:對於一般的 雙操作數運算類 指令而言,除了操作碼外,指令還應包含地址碼。
指令 = 操作碼 + 地址碼。 地址最多分爲四條:
在這裏插入圖片描述
在指令中明顯地給出的地址稱爲 顯地址

在指令中用隱含的方式給出的地址稱爲 隱地址

又因爲 指令 所含地址個數的不同分爲 類 地址指令。

(一) 四地址指令

四地址指令 即有四個顯地址 的指令。
指令格式 如下
在這裏插入圖片描述
指令的含義 如下
在這裏插入圖片描述
Ai表示地址,(Ai)表示取出地址中的操作數

至少訪問 5次 主存,第一次取指令,第二次取第一操作數,第三次取第二操作數,第四次取保存操作結果,第五次取下一指令執行地址。

缺點:指令長度太長

(二) 三地址指令

三地址指令 即有三個隱地址 的指令。

地址不明顯給出,而是使用 程序計算器PC 來存放指令地址。

PC (Program calculate )

通常每執行一條命令,PC就自動加1,並從計算器PC中取出下一條地址。 這樣就可以直接得到下一條的指令地址。而不用每次都從主存中取出指令。

指令格式 如下
在這裏插入圖片描述
指令含義 如下

在這裏插入圖片描述
至少訪問 四次 主存,第一次取指令,第二次去第一操作數,第三次取第二操作數,第三次保存運算結果。

缺點:雖去除一個地址,但地址仍然很長,只在大型機器上使用,小型的很少使用了。

(三) 二地址指令

二指令地址 即 有兩個顯地址 的指令

指令格式 如下
在這裏插入圖片描述
在三地址指令的基礎上,第一操作數同時兼作存放結構的地址

同樣也至少訪問4次地址。

(四) 一地址指令

一地址指令 即只有一個顯地址 的指令。

指令格式 (其中OP表示具體操作) 如下
在這裏插入圖片描述
指令含義 如下
在這裏插入圖片描述

只需要訪問兩次主存,第一次取指令本身,第二次取第二操作數。

隱含的操作數 在專門的寄存器中 取出(累加寄存器ACC)

第一操作數在 acc中

A1屬於第二操作數

(五) 零地址指令

即只有 操作碼字段而沒有地址碼字段的指令

指令格式 如下
在這裏插入圖片描述

(六)不同地址數的指令特點和適用場景

如圖
在這裏插入圖片描述

3、操作碼結構

計算機系統每一條指令都有一個唯一確定的 操作碼 ,指令不同,其 操作碼的編碼 也不同。一般都希望用最短的操作碼去表達全部的指令。根據 指令操作碼的編碼 不同可以將操作碼分成 規整型非規整型 兩類。

(一) 規整型(定長編碼)

這是一種最簡單的編碼方式,操作碼的 位數位置 是固定的。

假定指令系統 共有 m 條指令,指令中 操作碼字段的位數是 n位
則有規定 如下
在這裏插入圖片描述

(二) 非規整型(變長編碼)

變長編碼的 操作數字段 的位數是不固定的,且分散在指令字的 不同位置上 、這種方式能夠有效地壓縮 操作碼字段 的 平均長度。

**要解決的問題:**顯然 操作數字段位數位置 不固定將增加指令 譯碼分析 的難度。爲了解決這一個問題最常用的方式是使用 擴展操作碼法 去進行 變長編碼

① 擴展操作碼法原理

在一條指令上,操作碼字段地址碼字段長度 在某種意義上是相互制約的。爲了解決這一矛盾,通常 讓 操作數地址 個數多的指令(如三地址指令)的 操作碼字段 儘量短些,操作數地址 個數少的指令的 操作碼字段 儘量長些。

即操作數地址多的指令操作碼短,操作數地址多的指令操作碼長些。

這樣一來就能充分地利用的指令的各個字段,又能在不增加指令長度的情況上 擴展操作碼 的位數,使它能表達更多的指令。

② 舉例應用

舉例 如下
在這裏插入圖片描述
在這裏插入圖片描述
承上啓下
在這裏插入圖片描述

三、尋址技術

所謂尋址就是尋址 操作數的地址下一條要執行的指令 地址

尋址技術 包括 編址方式尋址方式

1、編址方式

在計算機之中,編址方式 是對各種 存儲設備 進行編碼的方式。

① 編址

② 編址單位

2、尋址方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章