第3章指令系統(2013)_第1頁
第3章指令系統(2013)_第2頁
第3章指令系統(2013)_第3頁
第3章指令系統(2013)_第4頁
第3章指令系統(2013)_第5頁
已閱讀5頁,還剩102頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章指令系統指令系統計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章 指令和指令系統是計算機中最基本的指令和指令系統是計算機中最基本的概念。指令是指示計算機執行某些操作的概念。指令是指示計算機執行某些操作的命令,一臺計算機的所有指令的集合構成命令,一臺計算機的所有指令的集合構成該機的指令系統,也稱指令集。指令系統該機的指令系統,也稱指令集。指令系統是計算機的主要屬性,位于硬件和軟件的是計算機的主要屬性,位于硬件和軟件的交界面上。本章將討論一般計算機的指令交界面上。本章將討論一般計算機

2、的指令系統所涉及的基本問題。系統所涉及的基本問題。 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章裸機裸機軟件軟件指令系統指令系統計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章3.1 指令格式指令格式3.2 尋址技術尋址技術3.3 堆棧堆棧與堆棧操作與堆棧操作3.4 指令類型指令類型3.5 指令系統的發展指令系統的發展 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式3.1.1 機器指令的基本格式機器指令的基本格式 一條指令就是機器語言的一個語句,一條指令就是機器語言的一個語

3、句,它是一組有意義的二進制代碼。指令的基它是一組有意義的二進制代碼。指令的基本格式如下:本格式如下: 操作碼字段操作碼字段地址碼字段地址碼字段操作碼操作碼:指明操作的性質及功能。:指明操作的性質及功能。操作碼操作碼 地址碼地址碼:指明操作數的地址,特殊情況:指明操作數的地址,特殊情況下也可能直接給出操作數本身。下也可能直接給出操作數本身。地址碼地址碼注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 指令的長度是指一條指令中所包含的二進指令的長度是指一條指令中所包含的二進制代碼的位數,它取決于操作碼字段的長度、制代碼的位數,它取決于操作碼字段的

4、長度、操作數地址的個數及長度。指令長度應:操作數地址的個數及長度。指令長度應: 盡可能短盡可能短 等于字節的整數倍等于字節的整數倍 指令長度可以等于機器字長,也可以大于指令長度可以等于機器字長,也可以大于或小于機器字長。或小于機器字長。 在一個指令系統中,若所有指令的長度都在一個指令系統中,若所有指令的長度都是相等的,稱為定長指令字結構;若各種指令是相等的,稱為定長指令字結構;若各種指令的長度隨指令功能而異,稱為變長指令字結構。的長度隨指令功能而異,稱為變長指令字結構。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式3.1.2 地址碼結構地址碼結

5、構 一條一條雙操作數指令雙操作數指令的除操作碼之外,還的除操作碼之外,還應包含以下信息:應包含以下信息: 第一操作數地址,用第一操作數地址,用A1表示;表示; 第二操作數地址,用第二操作數地址,用A2表示;表示; 操作結果存放地址,用操作結果存放地址,用A3表示;表示; 下條將要執行指令的地址,用下條將要執行指令的地址,用A4表示。表示。 這些信息可以在指令中明顯的給出,稱這些信息可以在指令中明顯的給出,稱為為顯地址顯地址;也可以依照某種事先的約定,用;也可以依照某種事先的約定,用隱含的方式給出,稱為隱含的方式給出,稱為隱地址隱地址。 下面以下面以雙操作數指令雙操作數指令為例討論地址碼結為例討

6、論地址碼結構。構。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式1.四地址指令四地址指令OPOPA A1 1A A2 2A A3 3A A4 4 (A1)OP(A2)A3 A4=下條將要執行下條將要執行指令的地址指令的地址538+ +10020030040010020030050100200300400指令指令下一指令下一指令53指令指令 5 3 8下一指令下一指令400+ +計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院10020030050指令指令下一指令下一指令53513.1 指令格式指令格式2.三地址指令三地址

7、指令OPOPA A1 1A A2 2A A3 3(A1)OP(A2)A3(PC)+1=下條將要執下條將要執行指令的地址行指令的地址程序計數器:程序計數器:存放當前指令地址存放當前指令地址指令指令 5 3 8下一指令下一指令+ +100200300538+ 執行一條三地址指執行一條三地址指令需令需4次訪問主存。次訪問主存。100200300 + +計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院(A1)OP(A2)A13.1 指令格式指令格式3.3.二地址指令二地址指令OPOPA A1 1A A2 2(PC)+1=下條將要執行下條將要執行指令的地址指令的地址 A1中原存內

8、容在中原存內容在指令執行后被破壞。指令執行后被破壞。目的操作數地址目的操作數地址源操作數地址源操作數地址 執行一條二地址執行一條二地址指令需指令需4次訪問主存。次訪問主存。10020030050指令指令下一指令下一指令5351指令指令 5 3 8下一指令下一指令+ +100200538+100200 + +計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院(Acc)OP(A1)Acc3 3.1 指令格式指令格式4.4.一地址指令一地址指令OPOPA A1 1(PC)+1=下條將下條將要執行指令的地要執行指令的地址址累加寄存器累加寄存器 執行一條一執行一條一地址指令需地址指

9、令需2次訪次訪問主存。問主存。10020030050指令指令下一指令下一指令351指令指令 3下一指令下一指令+ +100538+100 + +計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式5.5.零地址指令零地址指令OPOP 操作數地址是隱含的。參加運算的操操作數地址是隱含的。參加運算的操作數放在堆棧中,運算結果也放在堆棧中。作數放在堆棧中,運算結果也放在堆棧中。有關堆棧的概念將在稍后討論。有關堆棧的概念將在稍后討論。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 指令中地址個數的選取要考慮諸

10、多的指令中地址個數的選取要考慮諸多的因素。從縮短程序長度,用戶使用方便,因素。從縮短程序長度,用戶使用方便,增加操作并行度等方面來看,選用三地址增加操作并行度等方面來看,選用三地址指令格式較好;從縮短指令長度,減少訪指令格式較好;從縮短指令長度,減少訪存次數,簡化硬件設計等方面來看,一地存次數,簡化硬件設計等方面來看,一地址指令格式較好。對于同一個問題,用三址指令格式較好。對于同一個問題,用三地址指令編寫的程序最短,但指令長度最地址指令編寫的程序最短,但指令長度最長,而用二、一、零地址指令來編寫程序,長,而用二、一、零地址指令來編寫程序,程序的長度一個比一個長,但指令的長度程序的長度一個比一個

11、長,但指令的長度一個比一個短。一個比一個短。注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式例:計算例:計算x=(ab+c-d) (e+f)三地址指令:三地址指令:MULA,B,XADDX,C,XSUBX,D,XADDE,F,YDIVX,Y,X 5條指令,每條指令條指令,每條指令4次訪存,執行此程次訪存,執行此程序共訪存序共訪存20次。次。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式二地址指令:二地址指令:MOVX,AMULX,BADDX,CSUBX,DMOVY,EADDY,FDIVX,Y

12、7條指令,條指令,MOV指令指令3次訪存,算邏指令次訪存,算邏指令4次訪存,執行此程序共訪存次訪存,執行此程序共訪存23+54=26次次。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式一地址指令:一地址指令:LOAD EADD FSTORE XLOAD AMULBADDCSUBDDIVXSTORE X 9條指令,每條指令,每條指令條指令2次訪存,次訪存,執行此程序共訪執行此程序共訪存存92=18次次計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式3.1.3 指令的操作碼指令的操作碼 指令系統中的每

13、一條指令都有一個唯指令系統中的每一條指令都有一個唯一確定的操作碼,指令不同,其操作碼的一確定的操作碼,指令不同,其操作碼的編碼也不同。為了能表示整個指令系統中編碼也不同。為了能表示整個指令系統中的全部指令,指令的操作碼字段應當具有的全部指令,指令的操作碼字段應當具有足夠的位數。足夠的位數。 指令操作碼的編碼可以分為指令操作碼的編碼可以分為規整型規整型和和非規整型非規整型兩類:兩類: 規整型(定長編碼)規整型(定長編碼) 非規整型(變長編碼)非規整型(變長編碼) 注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 1.規整型規整型 操作碼字段的位

14、數和位置是固定的。操作碼字段的位數和位置是固定的。 假定:指令系統共有假定:指令系統共有m條指令,指令中條指令,指令中操作碼字段的位數為操作碼字段的位數為N位,則有如下關系式:位,則有如下關系式: Nlog2 m IBM 370機(字長機(字長32位)的指令可分為位)的指令可分為三種不同的長度形式:半字長指令、單字長三種不同的長度形式:半字長指令、單字長指令和一個半字長指令。不論指令的長度為指令和一個半字長指令。不論指令的長度為多少位,其中操作碼字段多少位,其中操作碼字段一律都是一律都是8位位,8位位操作碼字段允許容納操作碼字段允許容納256條指令,實際上在條指令,實際上在IBM 370機中僅

15、有機中僅有183條指令。條指令。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式OPOPOPOPOPD2D1D1D2D2R1R1R1R2R2L1B1B2B2B2X2B1I28888844444444444881212121212RR型RX型RS型SI型SS型計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 定長編碼對于簡化硬件設計,減少指定長編碼對于簡化硬件設計,減少指令譯碼的時間是非常有利的,存在著信息令譯碼的時間是非常有利的,存在著信息冗余。冗余。 計算機組成原理計算機組成原理北京理工大學計算機

16、學院北京理工大學計算機學院3.1 指令格式指令格式2.非規整型非規整型 操作碼字段的位數不固定,且分散地操作碼字段的位數不固定,且分散地放在指令字的不同位置上。放在指令字的不同位置上。 PDP-11機(字長機(字長16位)的指令分為單位)的指令分為單字長、兩字長、三字長三種,操作碼字段字長、兩字長、三字長三種,操作碼字段占占416位不等,可遍及整個指令長度。位不等,可遍及整個指令長度。 操作碼字段的位數和位置不固定將增操作碼字段的位數和位置不固定將增加指令譯碼和分析的難度,使控制器的設加指令譯碼和分析的難度,使控制器的設計復雜化。計復雜化。 計算機組成原理計算機組成原理北京理工大學計算機學院北

17、京理工大學計算機學院3.1 指令格式指令格式OPRR846261316OPS844OPOPOPOPOPOP1616SDD1683DDXSS66666610單字長(16位)二字長(32位)三字長(48位)地址地址1地址2計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 最常用的非規整型編碼方式是擴展操最常用的非規整型編碼方式是擴展操作碼法:作碼法: 讓操作數地址個數多的指令(如三地讓操作數地址個數多的指令(如三地址指令)的操作碼字段短些,操作數地址址指令)的操作碼字段短些,操作數地址個數少的指令(如一或零地址指令)的操個數少的指令(如一或零地址指令

18、)的操作碼字段長些。作碼字段長些。注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.1 指令格式指令格式 例如:設某機的指令長度為例如:設某機的指令長度為16位,操位,操作碼字段為作碼字段為4位,有三個位,有三個4位的地址碼字段,位的地址碼字段,其格式為:其格式為: 如果按照定長編碼的方法,如果按照定長編碼的方法,4位操作碼位操作碼字段最多只能表示字段最多只能表示16條不同的三地址指令。條不同的三地址指令。OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.

19、1 指令格式指令格式OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1515條三地址指令條三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111515條二地址指令條二地址指令11111111 0000 XXXX YYYY 0000 XXXX YYYY1111 1110 XXXX YYYY1111 1110 XXXX YYYY1111 11111111 11111515條一地址指令條一地址指令1111 11111111 1111

20、 0000 XXXX 0000 XXXX1111 1111 1110 XXXX1111 1111 1110 XXXX1111 1111 11111111 1111 11111616條零地址指令條零地址指令1111 1111 11111111 1111 1111 0000 00001111 1111 1111 11111111 1111 1111 1111擴展窗口擴展窗口擴展窗口擴展窗口擴展窗口擴展窗口OPOPA1A1A2A2OPOPA1A1OPOP計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章3.1 指令格式指令格式3.2 尋址技術尋址技術3.3 堆棧堆棧與

21、堆棧操作與堆棧操作3.4 指令類型指令類型3.5 指令系統的發展指令系統的發展 計算機組成原理計算機組成原理2012.10北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 尋址,指的是尋找操作數的地址尋址,指的是尋找操作數的地址或下或下一條將要執行的指令地址。一條將要執行的指令地址。尋址技術包括尋址技術包括編址方式和尋址方式。編址方式和尋址方式。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術3.2.1 編址方式編址方式1. 編址編址 通常,指令中的地址碼字段將指出操作通常,指令中的地址碼字段將指出操作數的來源和去向,而操作數

22、則存放在相應數的來源和去向,而操作數則存放在相應的存儲設備中。在計算機中需要編址的設的存儲設備中。在計算機中需要編址的設備主要有備主要有CPU中的通用寄存器、主存儲器中的通用寄存器、主存儲器和輸入輸出設備等和輸入輸出設備等3種。種。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術2. 編址單位編址單位(1)字編址字編址 編址單位編址單位=訪問單位訪問單位 每個編址單位所包含的信息量(二進每個編址單位所包含的信息量(二進制位數)與讀或寫一次寄存器、主存所獲制位數)與讀或寫一次寄存器、主存所獲得的信息量是相同的。早期的大多數機器得的信息量是相同的。早

23、期的大多數機器都采用這種編址方式。都采用這種編址方式。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術(2)字節編址字節編址 字節編址是為了適應非數值計算的需字節編址是為了適應非數值計算的需要。字節編址方式使編址單位與信息的基本要。字節編址方式使編址單位與信息的基本單位(一個字節)相一致,這是它的最大優單位(一個字節)相一致,這是它的最大優點。然而,如果主存的訪問單位也是一個字點。然而,如果主存的訪問單位也是一個字節的話,那么主存的頻帶就太窄了。節的話,那么主存的頻帶就太窄了。 編址單位訪問單位編址單位訪問單位 通常主存的訪問單位是編址單位的若通

24、常主存的訪問單位是編址單位的若干倍。干倍。(3)位編址位編址 也有部分計算機系統采用位編址方式。也有部分計算機系統采用位編址方式。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術3. 指令中地址碼的位數指令中地址碼的位數 指令格式中每個地址碼的位數是與指令格式中每個地址碼的位數是與主存主存容量容量和和最小尋址單位最小尋址單位(即編址單位)有關聯(即編址單位)有關聯的。主存容量越大,所需的地址碼位數就越的。主存容量越大,所需的地址碼位數就越長。對于相同容量來說,如果以字節為最小長。對于相同容量來說,如果以字節為最小尋址單位,地址碼的位數就需要長些;

25、如果尋址單位,地址碼的位數就需要長些;如果以字為最小尋址單位(假定字長為以字為最小尋址單位(假定字長為16位或更位或更長),地址碼的位數可以減少。設某機主存長),地址碼的位數可以減少。設某機主存容量為容量為220 個字節,機器字長個字節,機器字長32位。若最小位。若最小尋址單位為字節(按字節編址),其地址碼尋址單位為字節(按字節編址),其地址碼應為應為20位;若最小尋址單位為字(按字編位;若最小尋址單位為字(按字編址),其地址碼只需址),其地址碼只需18位。位。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術3.2.2 數據尋址和指令尋址數據尋址

26、和指令尋址 尋址可以分為數據尋址和指令尋址。尋址可以分為數據尋址和指令尋址。尋找操作數的地址稱為數據尋址,尋找操作數的地址稱為數據尋址,數據尋數據尋址方式較多,其最終目的都是尋找所需要址方式較多,其最終目的都是尋找所需要的操作數的操作數。尋找下一條將要執行的指令地。尋找下一條將要執行的指令地址稱為指令尋址,指令尋址比較簡單,它址稱為指令尋址,指令尋址比較簡單,它又可以細分為順序尋址和跳躍尋址。又可以細分為順序尋址和跳躍尋址。注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 順序尋址可通過程序計數器順序尋址可通過程序計數器PC加加1,自動形成下

27、一條指令的地址;跳躍尋址則自動形成下一條指令的地址;跳躍尋址則需要通過程序轉移類指令實現。需要通過程序轉移類指令實現。 跳躍尋址的轉移地址形成方式有三種:跳躍尋址的轉移地址形成方式有三種:直接(絕對)、相對和間接尋址,它與下直接(絕對)、相對和間接尋址,它與下面介紹的數據尋址方式中的直接、相對和面介紹的數據尋址方式中的直接、相對和間接尋址是相同的,只不過尋找到的不是間接尋址是相同的,只不過尋找到的不是操作數的有效地址而是轉移的有效地址而操作數的有效地址而是轉移的有效地址而已。已。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 3.2.3 基本的

28、數據尋址方式基本的數據尋址方式 尋址方式是根據指令中給出的地址碼尋址方式是根據指令中給出的地址碼字段尋找真實操作數地址的方式。字段尋找真實操作數地址的方式。 指令中的形式地址指令中的形式地址A有效地址有效地址EA尋址方式尋址方式OPOP立即數立即數 在取指令時,操作碼和操作數被同時取在取指令時,操作碼和操作數被同時取出,不必再次訪問存儲器,從而提高了指令出,不必再次訪問存儲器,從而提高了指令的執行速度。但是,因為操作數是指令的一的執行速度。但是,因為操作數是指令的一部分,不能被修改,且立即數的大小將受到部分,不能被修改,且立即數的大小將受到指令長度的限制。指令長度的限制。1.立即尋址立即尋址計

29、算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術2.寄存器尋址寄存器尋址 指令中地址碼部分指令中地址碼部分給出某一通用寄存器的給出某一通用寄存器的編號,所指定的寄存器編號,所指定的寄存器中存放著操作數。中存放著操作數。 兩個明顯的優點:兩個明顯的優點: 從寄存器存取數據從寄存器存取數據比主存快得多;比主存快得多; 由于寄存器的數量由于寄存器的數量較少,其地址碼字段比較少,其地址碼字段比主存單元地址字段短得主存單元地址字段短得多。多。操作數操作數OP指令寄存器指令寄存器 通用寄存器通用寄存器RiR5操作數操作數S=(Ri)操作數操作數EA= RiR5

30、計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院操作數操作數OP指令寄存器指令寄存器主存儲器主存儲器A3.2 尋址技術尋址技術3.直接尋址直接尋址 指令中地址碼指令中地址碼字段給出的地址字段給出的地址A就是操作數的有效就是操作數的有效地址:地址: EA=A 由于操作數由于操作數地址是不能修改的,地址是不能修改的,與程序本身所在的與程序本身所在的位置無關,所以又位置無關,所以又叫做叫做絕對尋址絕對尋址方式。方式。操作數操作數100操作數操作數S=(A)100計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術4.間接尋址間接尋址

31、 指令中給出的地指令中給出的地址址A不是操作數的地不是操作數的地址,而是存放操作數址,而是存放操作數地址的地址。地址的地址。 EA=(A) 通常在指令格式通常在指令格式中劃出一位作為標中劃出一位作為標志位。志位。 =0 直接尋址直接尋址 =1 間接尋址間接尋址操作數操作數EAOP指令寄存器指令寄存器主存儲器主存儲器A操作數操作數 100操作數操作數S=(A)100200200計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 間接尋址要比直接尋址靈活得多,它間接尋址要比直接尋址靈活得多,它的主要優點為:的主要優點為: 擴大了尋址范圍,可用指令的短地

32、址擴大了尋址范圍,可用指令的短地址訪問大的主存空間。訪問大的主存空間。 可將主存單元作為程序的地址指針,可將主存單元作為程序的地址指針,用以指示操作數在主存中的位置。當操作用以指示操作數在主存中的位置。當操作數的地址需要改變時,不必修改指令,只數的地址需要改變時,不必修改指令,只需修改存放有效地址的那個主存單元(間需修改存放有效地址的那個主存單元(間接地址單元)的內容就可以了。接地址單元)的內容就可以了。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 除去一級間接尋除去一級間接尋址外,還有多級間接址外,還有多級間接尋址。多級間接尋址尋址。多級間

33、接尋址為取得操作數需要多為取得操作數需要多次訪問主存,即使在次訪問主存,即使在找到操作數有效地址找到操作數有效地址后,還需再訪問一次后,還需再訪問一次主存才可得到真正的主存才可得到真正的操作數。操作數。 多級間接標志:多級間接標志: 0:找到有效地址:找到有效地址 1:繼續間接尋址:繼續間接尋址EAOP指令寄存器指令寄存器主存儲器主存儲器A110二級間址二級間址三級間址三級間址操作數操作數100操作數操作數1 2001 3000 5010020030050計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院EAOP指令寄存器指令寄存器主存儲器主存儲器Ri操作數操作數 通用寄

34、存器通用寄存器3.2 尋址技術尋址技術 5.寄存器間接尋址寄存器間接尋址 指令中的地址碼給指令中的地址碼給出某一通用寄存器的出某一通用寄存器的編號,被指定的寄存編號,被指定的寄存器中存放操作數的有器中存放操作數的有效地址,而操作數則效地址,而操作數則存放在主存單元中。存放在主存單元中。 這種尋址方式的這種尋址方式的指令較短,并且在取指令較短,并且在取指后只需一次訪存便指后只需一次訪存便可得到操作數。可得到操作數。操作數操作數操作數操作數S=(Ri)100R5EA=(Ri)R5100計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術6.變址尋址變址尋

35、址 把指令給出的把指令給出的形式地址形式地址A與變址與變址寄存器寄存器RX的內容相的內容相加,形成操作數有加,形成操作數有效地址:效地址: EA=A+(RX) RX 的內容為變的內容為變址值。址值。120OP指令寄存器指令寄存器主存儲器主存儲器A操作數操作數R RX X變址值變址值XALU變址寄存器變址寄存器R RX X操作數操作數10020操作數操作數S=(A+(RX) 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 變址尋址是一種廣泛采用的尋址方式,變址尋址是一種廣泛采用的尋址方式,通常指令中的形式地址作為基準地址,而通常指令中的形式地址作

36、為基準地址,而RX的內容作為修改量。在遇到需要頻繁修的內容作為修改量。在遇到需要頻繁修改地址時,無須修改指令,只要修改變址改地址時,無須修改指令,只要修改變址值就可以了。值就可以了。 例如:要把一組連續存放在主存單元例如:要把一組連續存放在主存單元中的數據(首地址是中的數據(首地址是A)依次傳送到另一存)依次傳送到另一存儲區(首地址為儲區(首地址為B)中去,則只需在指令中)中去,則只需在指令中指明兩個存儲區的首地址指明兩個存儲區的首地址A和和B(形式地(形式地址),用同一變址寄存器提供修改量址),用同一變址寄存器提供修改量K,即,即可實現可實現(A+K)B+K。變址寄存器的內容在。變址寄存器的

37、內容在每次傳送之后自動地修改。每次傳送之后自動地修改。 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術7.基址尋址基址尋址 將基址寄存器將基址寄存器Rb的內容與位移量的內容與位移量D相相加,形成操作數有效加,形成操作數有效地址:地址: EA=(Rb)+D 基址寄存器的內基址寄存器的內容稱為基址值,指令容稱為基址值,指令的地址碼字段是一個的地址碼字段是一個位移量,位移量,位移量可正位移量可正可負可負。OP指令寄存器指令寄存器主存儲器主存儲器D操作數操作數R Rb b基址值基址值ALU基址寄存器基址寄存器Rb120操作數操作數20100操作數操作數

38、S=(Rb)+D)計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 基址尋址和變址尋址在形成有效地址基址尋址和變址尋址在形成有效地址時所用的算法是相同的,而且在一些計算時所用的算法是相同的,而且在一些計算機中,這兩種尋址方式都是由同樣的硬件機中,這兩種尋址方式都是由同樣的硬件來實現的。來實現的。 但這兩種尋址方式應用的場合不同,但這兩種尋址方式應用的場合不同,變址尋址是面向用戶的,用于訪問字符串、變址尋址是面向用戶的,用于訪問字符串、向量和數組等成批數據;而基址尋址面向向量和數組等成批數據;而基址尋址面向系統,主要用于邏輯地址和物理地址的變系統,

39、主要用于邏輯地址和物理地址的變換,用以解決程序在主存中的再定位和擴換,用以解決程序在主存中的再定位和擴大尋址空間等問題。在某些大型機中,基大尋址空間等問題。在某些大型機中,基址寄存器只能由特權指令來管理,用戶指址寄存器只能由特權指令來管理,用戶指令無權操作和修改。令無權操作和修改。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院操作數操作數操作數操作數OP指令寄存器指令寄存器主存儲器主存儲器D指令指令指令地址指令地址ALU程序計數器程序計數器PC-D+D3.2 尋址技術尋址技術8.相對尋址相對尋址 相對尋址是基址相對尋址是基址尋址的一種變通,由尋址的一種變通,由程序計數

40、器程序計數器PC提供提供基準地址,即:基準地址,即: EA=(PC)+D 位移量指出的是位移量指出的是操作數和現行指令之操作數和現行指令之間的相對位置。間的相對位置。120操作數操作數20100操作數操作數S=(PC)+D)100-20 E0操作數操作數計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 相對尋址方式的特點:相對尋址方式的特點: 操作數的地址不是固定的,它隨著操作數的地址不是固定的,它隨著PC值值的變化而變化,并且與指令地址之間總是相的變化而變化,并且與指令地址之間總是相差一個固定值差一個固定值 D。當指令地址改變時,由。當指令地址

41、改變時,由于其位移量不變,使得操作數與指令在可用于其位移量不變,使得操作數與指令在可用的存儲區內一起移動,所以仍能保證程序的的存儲區內一起移動,所以仍能保證程序的正確執行。采用正確執行。采用PC相對尋址方式編寫的程相對尋址方式編寫的程序可在主存中任意浮動,它放在主存的任何序可在主存中任意浮動,它放在主存的任何地方,所執行的效果都是一樣的。地方,所執行的效果都是一樣的。 由于由于指令中給出的位移量可正、可負,所指令中給出的位移量可正、可負,所以對于指令地址而言,操作數地址可能在指以對于指令地址而言,操作數地址可能在指令地址之前或之后。令地址之前或之后。計算機組成原理計算機組成原理北京理工大學計算

42、機學院北京理工大學計算機學院3.2 尋址技術尋址技術9.頁面尋址頁面尋址 頁面尋址相當于將整個主存空間分成若頁面尋址相當于將整個主存空間分成若干個大小相同的區,每個區稱為一頁,每頁干個大小相同的區,每個區稱為一頁,每頁有若干個主存單元。每頁都有自己的編號,有若干個主存單元。每頁都有自己的編號,稱為頁面地址;頁面內的每個主存單元也有稱為頁面地址;頁面內的每個主存單元也有自己的編號,稱為頁內地址。這樣,操作數自己的編號,稱為頁內地址。這樣,操作數的有效地址就被分為兩部分:前部為頁面地的有效地址就被分為兩部分:前部為頁面地址,后部為頁內地址。址,后部為頁內地址。頁內地址頁內地址頁面地址頁面地址計算機

43、組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 頁內地址由指令頁內地址由指令的地址碼的地址碼A自動直接自動直接提供,它與頁面地址提供,它與頁面地址通過簡單的通過簡單的拼裝連接拼裝連接就可得到有效地址。就可得到有效地址。根據頁面地址的來源根據頁面地址的來源不同,有三種不同的不同,有三種不同的頁面尋址:頁面尋址:64KB0頁頁1頁頁2頁頁255頁頁0000255255255255頁內地址頁內地址(8位位)頁面地址頁面地址(8位位)64KB0頁頁1頁頁2頁頁511頁頁0000127127127127頁內地址頁內地址(7位位)頁面地址頁面地址(9位位)頁內地

44、址頁內地址(9位位)頁面地址頁面地址(7位位)64KB0頁頁1頁頁2頁頁127頁頁0000511511511511計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院指令寄存器指令寄存器主存儲器主存儲器OPA0頁頁1頁頁N-1頁頁指令指令所在頁所在頁0頁頁操作數操作數0頁頁3.2 尋址技術尋址技術 基頁尋址(零頁尋址)。由于頁面地址基頁尋址(零頁尋址)。由于頁面地址等于全等于全0,所以有效地址,所以有效地址EA=0A(在這在這里表示簡單拼接),操作數里表示簡單拼接),操作數S在零頁面中。在零頁面中。A頁內地址頁內地址頁面地址頁面地址EA操作數操作數3800000000000

45、000000000380038255頁頁64K計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院指令寄存器指令寄存器主存儲器主存儲器OPA0頁頁1頁頁N-1頁頁指令指令所在頁所在頁指令指令所在頁所在頁操作數操作數PCHPCLPCH程序計數器程序計數器3.2 尋址技術尋址技術 當前頁尋址。頁面地址就等于程序計數當前頁尋址。頁面地址就等于程序計數器器PC的高位部分,所以有效地址的高位部分,所以有效地址EA=(PC)H A,操作數,操作數S與指令本身處于同一頁面中。與指令本身處于同一頁面中。頁內地址頁內地址頁面地址頁面地址EA操作數操作數APCH操作數操作數38382F852F

46、2F38255頁頁64K511頁頁2FB8計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 頁寄存器尋址。頁面地址取自頁寄存器,頁寄存器尋址。頁面地址取自頁寄存器,與形式地址相拼接形成操作數有效地址:與形式地址相拼接形成操作數有效地址: EA=(頁寄存器頁寄存器)A 有些計算機在指令格式中設置了一個頁有些計算機在指令格式中設置了一個頁面標志位(面標志位(Z/C)。當)。當Z/C=0,表示零頁尋,表示零頁尋址,當址,當Z/C=1,表示當前頁尋址。,表示當前頁尋址。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院各種數據尋址方

47、式獲得數據的速度(由各種數據尋址方式獲得數據的速度(由快到慢)快到慢)立即尋址立即尋址寄存器尋址寄存器尋址直接尋址直接尋址寄存器間接尋址寄存器間接尋址頁面尋址頁面尋址變址尋址(基址尋址、相對尋址)變址尋址(基址尋址、相對尋址)一級間接尋址一級間接尋址多級間接尋址多級間接尋址 3.2 尋址技術尋址技術注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 為了能區分出各種不同尋址方式,必須為了能區分出各種不同尋址方式,必須在指令中給出標識。標識的方式通常有兩種:在指令中給出標識。標識的方式通常有兩種:顯式和隱式顯式和隱式。 顯式的方法就是在指令中設置

48、專門的尋顯式的方法就是在指令中設置專門的尋址方式(址方式(MOD)字段,用二進制代碼來表)字段,用二進制代碼來表明尋址方式類型。明尋址方式類型。 隱式的方式是由指令的操作碼字段說明隱式的方式是由指令的操作碼字段說明指令格式并隱含約定尋址方式。指令格式并隱含約定尋址方式。AMODOP顯式顯式AOP隱式隱式計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.2 尋址技術尋址技術 注意,一條指令若有兩個或兩個以注意,一條指令若有兩個或兩個以上的地址碼時,上的地址碼時,各地址碼可采用不同的各地址碼可采用不同的尋址方式尋址方式。例如,源地址采用一種尋址。例如,源地址采用一種尋址方

49、式,而目的地址采用另一種尋址方式。方式,而目的地址采用另一種尋址方式。 MOV AX,(BX)寄存器直接尋址寄存器直接尋址寄存器間接尋址寄存器間接尋址計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章3.1 指令格式指令格式3.2 尋址技術尋址技術3.3 堆棧堆棧與堆棧操作與堆棧操作3.4 指令類型指令類型3.5 指令系統的發展指令系統的發展 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧堆棧與堆棧操作與堆棧操作 堆棧是一種按特定順序進行存取的存堆棧是一種按特定順序進行存取的存儲區,這種特定順序可歸結為儲區,這種特定順序可歸

50、結為“后進先出后進先出”(LIFO)或)或“先進后出先進后出”(FILO)。)。 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧堆棧與堆棧操作與堆棧操作3.3.1 堆棧結構堆棧結構1.寄存器堆棧寄存器堆棧 用一組專門的寄存器構成寄存器堆棧,用一組專門的寄存器構成寄存器堆棧,又稱為硬堆棧。這種堆棧的棧頂是固定的,又稱為硬堆棧。這種堆棧的棧頂是固定的,寄存器組中各寄存器是相互連接的,它們寄存器組中各寄存器是相互連接的,它們之間具有對應位自動推移的功能,即可將之間具有對應位自動推移的功能,即可將一個寄存器的內容推移到相鄰的另一個寄一個寄存器的內容推移到相鄰的另一

51、個寄存器中去。存器中去。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作寄存器0寄存器1寄存器2寄存器k-1壓入彈出棧頂b0bn-2bn-1計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作2.存儲器堆棧存儲器堆棧 從主存中劃出一段區域來作堆棧,這種從主存中劃出一段區域來作堆棧,這種堆棧又稱為軟堆棧,堆棧的大小可變,棧底堆棧又稱為軟堆棧,堆棧的大小可變,棧底固定,棧頂浮動,故需要一個專門的硬件寄固定,棧頂浮動,故需要一個專門的硬件寄存器作為堆棧棧頂指針存器作為堆棧棧頂指針SP,

52、簡稱棧指針。棧,簡稱棧指針。棧指針所指定的主存單元,就是堆棧的棧頂。指針所指定的主存單元,就是堆棧的棧頂。 高地址高地址低地址低地址堆棧區自底向上生成自底向上生成方式的堆棧方式的堆棧計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作 堆棧的棧底地址大于棧頂地址,通常棧堆棧的棧底地址大于棧頂地址,通常棧指針始終指向指針始終指向棧頂的滿單元棧頂的滿單元。進棧時,。進棧時,SP的的內容需要先自動減內容需要先自動減1,然后再將數據壓入堆棧。,然后再將數據壓入堆棧。 20001FFF(SP)-1SP 修改棧指針修改棧指針(A)(SP) 將將A中的

53、數據壓入堆棧中的數據壓入堆棧SP2000A2000原棧頂單元現棧頂單元1FFF1FFF注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作 出棧時,需要先將堆棧中的數據彈出,出棧時,需要先將堆棧中的數據彈出,然后然后SP的內容再自動加的內容再自動加1。 2000(SP)A 將棧頂內容彈出,送入將棧頂內容彈出,送入A中中(SP)+1SP 修改棧指針修改棧指針SP1FFF1FFFA1FFF原棧頂單元現棧頂單元1FFF1FFF2000注意計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧

54、操作3.3.2 堆棧操作堆棧操作 在一般計算機中,堆棧主要用來暫存在一般計算機中,堆棧主要用來暫存中斷斷點、子程序調用時的返回地址、狀中斷斷點、子程序調用時的返回地址、狀態標志及現場信息等,也可用于子程序調態標志及現場信息等,也可用于子程序調用時參數的傳遞,所以用于訪問堆棧的指用時參數的傳遞,所以用于訪問堆棧的指令只有進棧(壓入)和出棧(彈出)兩種。令只有進棧(壓入)和出棧(彈出)兩種。 在堆棧計算機(如在堆棧計算機(如HP-3000、B5000等)等)中,沒有一般計算機中必備的通用寄存器,中,沒有一般計算機中必備的通用寄存器,因此堆棧就成為提供操作數和保存運算結因此堆棧就成為提供操作數和保存

55、運算結果的唯一場所。果的唯一場所。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作 通常,參加算通常,參加算邏運算的兩個操作邏運算的兩個操作數隱含地從堆棧頂數隱含地從堆棧頂部彈出,送到運算部彈出,送到運算器中進行運算,運器中進行運算,運算的結果再隱含地算的結果再隱含地壓入堆棧。這類堆壓入堆棧。這類堆棧操作指令中沒有棧操作指令中沒有地址部分,故稱為地址部分,故稱為零地址指令零地址指令。20012000a ab bb ba a2002+a+ba+ba+ba+b計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3

56、堆棧與堆棧操作堆棧與堆棧操作堆棧計算機實現計算堆棧計算機實現計算x=(ab+c-d) (e+f)PUSH APUSH BMULPUSH CADDPUSHDSUBPUSHEPUSHFADDDIVPOP Xaba*bca*b+cd efa*b+c-de+f(a*b+c-d)/(e+f)計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.3 堆棧與堆棧操作堆棧與堆棧操作 12條指令,進、出棧指令條指令,進、出棧指令3次訪存,算次訪存,算邏指令邏指令4次訪存,執行此程序共訪存次訪存,執行此程序共訪存73+54=41次。次。 可以先把算術表達式轉換成逆波蘭表可以先把算術表達式轉換

57、成逆波蘭表示式:示式: x=abc+d-ef+計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院第第3章章3.1 指令格式指令格式3.2 尋址技術尋址技術3.3 堆棧堆棧與堆棧操作與堆棧操作3.4 指令類型指令類型3.5 指令系統的發展指令系統的發展 計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.4 指令類型指令類型 3.4.1 數據傳送類指令數據傳送類指令 數據傳送類指令主要用于實現寄存器數據傳送類指令主要用于實現寄存器與寄存器之間,寄存器與主存單元之間以與寄存器之間,寄存器與主存單元之間以及兩個主存單元之間的數據傳送。數據傳及兩個主存單元

58、之間的數據傳送。數據傳送類指令又可以細分為:送類指令又可以細分為: 1.一般傳送指令一般傳送指令 一般傳送指令(一般傳送指令(MOV)具有數據復制)具有數據復制的性質,即數據從源地址傳送到目的地址,的性質,即數據從源地址傳送到目的地址,而源地址中的內容保持不變。傳送通常以而源地址中的內容保持不變。傳送通常以字節、字、雙字或數組為單位,特殊情況字節、字、雙字或數組為單位,特殊情況下也能按位為單位進行傳送。下也能按位為單位進行傳送。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.4 指令類型指令類型 主存單元之間的傳送主存單元之間的傳送 MOV mem2,mem1,其含

59、義為,其含義為 (mem1)mem2 從主存單元傳送到寄存器從主存單元傳送到寄存器 MOV reg,mem,其含義為,其含義為 (mem)reg 在有些計算機中,該指令用助記符在有些計算機中,該指令用助記符LOAD表示,又稱為取數指令。表示,又稱為取數指令。計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.4 指令類型指令類型 從寄存器傳送到主存單元從寄存器傳送到主存單元 MOV mem,reg,其含義為,其含義為 (reg)mem 在有些計算機里,該指令用助記符在有些計算機里,該指令用助記符STORE表示,又稱為存數指令。表示,又稱為存數指令。 寄存器之間的傳送寄存

60、器之間的傳送 MOV reg2,reg1,其含義為,其含義為 (reg1)reg2計算機組成原理計算機組成原理北京理工大學計算機學院北京理工大學計算機學院3.4 指令類型指令類型 2.堆棧操作指令堆棧操作指令 堆棧指令是一種特殊的數據傳送指令,堆棧指令是一種特殊的數據傳送指令,分為進棧(分為進棧(PUSH)和出棧()和出棧(POP)兩種。)兩種。 因為堆棧(指軟堆棧)是主存的一個特因為堆棧(指軟堆棧)是主存的一個特定區域,所以對堆棧的操作也就是對存儲器定區域,所以對堆棧的操作也就是對存儲器的操作。的操作。3.數據交換指令數據交換指令 前述指令的傳送都是單方向的,然而,前述指令的傳送都是單方向的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論