




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第第3 3章章 尋址方式與指令系統尋址方式與指令系統指令指令:指示計算機執行某種操作的命令。:指示計算機執行某種操作的命令。指令系統指令系統:一臺計算機擁有的全部指令。:一臺計算機擁有的全部指令。 人們知道:計算機通過執行程序可以完成所要求的人們知道:計算機通過執行程序可以完成所要求的各種任務。程序是由一系列指令構成。指令則是人們各種任務。程序是由一系列指令構成。指令則是人們指示計算機硬件執行諸如加、減(算術運算和邏輯運指示計算機硬件執行諸如加、減(算術運算和邏輯運算)、移位等基本操作的命令。算)、移位等基本操作的命令。程序程序:由一系列:由一系列有序有序指令構成。指令構成。如: Intel
2、 8086/8088 CPU的指令系統中共有92種基本指令,分為6大類:(1)數據傳送(2)算術運算(3)邏輯運算和移位指令(4)串操作(5)控制轉移(6)處理器控制指令系統是硬件和軟件的主要界面。l是設計計算機硬件的一個基本依據l是軟件設計者編制程序的基礎4本節主要討論:一般本節主要討論:一般指令格式指令格式 常用常用尋址方式尋址方式 面向用戶的面向用戶的指令類型指令類型52、操作數、操作數或或操作數地址操作數地址:指令中應給出參與運算的數:指令中應給出參與運算的數據或指出這些數據的存放位置。據或指出這些數據的存放位置。3、存放結果的地址、存放結果的地址:運算完成后所得結果的存放位置。:運算
3、完成后所得結果的存放位置。3.1 指令格式與指令系統設計指令格式與指令系統設計一條指令一般應包含以下信息:一條指令一般應包含以下信息:1、操作碼、操作碼:指示操作的類型,即要求計算機執行的操作,:指示操作的類型,即要求計算機執行的操作,如加、減、乘、除等。如加、減、乘、除等。3.1.1 指令格式指令格式6 4、后續指令地址、后續指令地址:在一個由指令序列構:在一個由指令序列構成的程序中,執行完一條指令后,需要指出成的程序中,執行完一條指令后,需要指出下一條要執行指令的存放位置。下一條要執行指令的存放位置。 在一條指令中應包含一個操作碼和一個或在一條指令中應包含一個操作碼和一個或多個地址碼。多個
4、地址碼。7 指令基本格式指令基本格式操作碼操作碼 操作數操作數OROR地址碼地址碼 D D一個一個一個或幾個一個或幾個下面就從以下方面介下面就從以下方面介紹紹:1. 指令指令2. 操作碼結構操作碼結構3. 地址結構地址結構思考:計算機執行什么操作思考:計算機執行什么操作是由一條指令中的哪一部分是由一條指令中的哪一部分所確定?所確定?83.1.2. 指令字長指令字長定長指令格式定長指令格式變長指令格式變長指令格式便于控制便于控制(1) 定長操作碼定長操作碼各指令各指令的位置、位數固定相同。的位置、位數固定相同。(2 2)擴展操作碼)擴展操作碼各指令各指令的位置、位數不固定,根據需要變化。的位置、
5、位數不固定,根據需要變化。合理利用存儲空間合理利用存儲空間1. 操作碼結構操作碼結構關鍵在設置擴展標志。關鍵在設置擴展標志。-由操作碼判定由操作碼判定擴展操作碼技術擴展操作碼技術【例】設某機器指令長度為16位,包括1個操作碼字段和3個地址碼字段,每個字段長度均為4位?,F在要求擴展為15條三地址指令、15條二地址指令、15條一地址指令及16條零地址指令。試給出擴展操作碼的方案。 該指令格式如下:OPA1操作碼字段地址碼字段A2A3地址碼字段地址碼字段15 12 11 8 7 4 3 0 10操作碼操作碼 地址碼地址碼 15 12 11 8 7 4 3 00000 0000 X X Y Y Z Z
6、 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 1515條條二地址指令二地址指令 1515條條11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515條條11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616條條操作碼擴展標志操作碼擴展標志(可
7、以有多種分配方案可以有多種分配方案)OP A1 A2 A311(3)復合型操作碼)復合型操作碼操作碼分為幾部分,每部分表示一類操作。操作碼分為幾部分,每部分表示一類操作。例例. .某計算機的算邏指令某計算機的算邏指令0 1 2 3 4 5 6 7 8 15基本操作基本操作 進位進位 移位移位 回送回送 判跳判跳 操作數操作數12 3.1.3 指令的地址碼指令的地址碼 指令中提供的地址指令中提供的地址存儲單元地址碼存儲單元地址碼寄存器編號寄存器編號(1)指令提供地址的方式)指令提供地址的方式顯地址方式顯地址方式隱地址方式隱地址方式: 指令中明顯指明地址。指令中明顯指明地址。: 地址隱含約定地址隱
8、含約定,不出現在指令中。不出現在指令中。13(2) 地址結構的簡化地址結構的簡化操作數操作數地址地址 四地址結構指令四地址結構指令格式:格式:使用使用隱地址隱地址可以減少指令中的地址數,可以減少指令中的地址數,簡化簡化地址結構地址結構。 D1 D2 D3 D4 D1 D2 D3 D4結果結果地址地址下條指下條指令地址令地址功能:功能: (D1)(D1)(D2) D3(D2) D3(D4) (D4) 下條指令下條指令用指令計數器用指令計數器PC(PC(也稱也稱: :指令指針指令指針) )指示指示指令地址。指令地址。注釋注釋: 寄存器級的寄存器級的傳送形式表示傳送形式表示(D1)表示按表示按D1地
9、址地址所讀取的內容所讀取的內容(即操即操作數作數)14三地址結構指令三地址結構指令格式:格式:操作數操作數地址地址 D1 D2 D3 D1 D2 D3 結果結果地址地址下條指令地址下條指令地址轉移時,用轉移地址轉移時,用轉移地址修改修改PC內容。內容。功能:功能: (D1)(D1)(D2) D3(D2) D3(PC) + 1 PC(PC) + 1 PC源源/目的目的二地址結構指令二地址結構指令格式:格式: D1 D2 D1 D2 目的目的/源源功能:功能: (D1)(D1)(D2) D2/D1(D2) D2/D1(PC) + 1 PC(PC) + 1 PC注意注意: 1) 這里這里1-代表代表
10、1條指條指令的字節數令的字節數2) 后繼指令地址是隱后繼指令地址是隱含地址含地址, PC內容增量內容增量計數也是隱含約定的計數也是隱含約定的15雙操作數:雙操作數:一地址結構指令一地址結構指令格式:格式: D1 D1 隱含約定隱含約定單操作數:單操作數:功能:功能:(D1)(D1)(A) A(A) A(PC) + 1 PC(PC) + 1 PC(D1) D1(D1) D1(PC) + 1 PC(PC) + 1 PC比如比如:有些機型有些機型CPU中設置累加中設置累加器器AC, 其中一個操作數其中一個操作數(目目的操作數的操作數)由由AC提供提供, 運算運算結果也存于結果也存于AC中中.16例例
11、.ADD.ADD;執行前:執行前:低低SPSP101020204646SPSP30304646執行后:執行后:高高低低高高零地址結構指令零地址結構指令格式:格式: 功能:功能: 無需操作數無需操作數,如如:NOP, HALT等等 隱含約定的單操作數指令隱含約定的單操作數指令 用于堆棧或特殊指令操作。用于堆?;蛱厥庵噶畈僮?。17由以上可看出由以上可看出: : 隱地址可以簡化指令的地隱地址可以簡化指令的地址結構址結構, ,減少指令中的顯地址數減少指令中的顯地址數. .思考:思考: 隱地址會對地址選擇帶來隱地址會對地址選擇帶來一定限制一定限制, 那么顯地址多少個那么顯地址多少個合適合適?183.1.
12、4 指令的操作碼指令的操作碼 前面我們已經知道:計算機所執行的何種操作是由前面我們已經知道:計算機所執行的何種操作是由“指令中的操作碼指令中的操作碼”所決定的。所決定的。 目前,在指令操作碼設計中采用目前,在指令操作碼設計中采用“定長、變長和單定長、變長和單功能型、復合型操作碼功能型、復合型操作碼”191、定長操作碼、定長操作碼 變長指令碼變長指令碼2、變長操作碼、變長操作碼 定長指令碼定長指令碼3、單功能型或復合型操作碼、單功能型或復合型操作碼203.1.5 指令系統的設計指令系統的設計P67213.2 指令和數據的指令和數據的尋址方式尋址方式 ( (書書P68)P68) 尋址方式是指尋址方
13、式是指尋找操作數或操作數尋找操作數或操作數地址的方式地址的方式。223.2.1 指令的尋址方式指令的尋址方式1、順序尋址方式、順序尋址方式 通常采用一地址計數器如通常采用一地址計數器如PC(PC=PC+1)完成。)完成。計算機的工作過程是:取指令計算機的工作過程是:取指令分析(解釋)分析(解釋)-執行。執行。2、跳躍尋址方式、跳躍尋址方式 通常是轉移指令(條件或無條件,如通常是轉移指令(條件或無條件,如C語言的語言的IF 語句。語句。233.2.2 操作數的尋址方式操作數的尋址方式 操作數不像指令那樣按順序存儲在主存中,因為操操作數不像指令那樣按順序存儲在主存中,因為操作數會來自某一存儲單元或
14、某一程序或某一變量作數會來自某一存儲單元或某一程序或某一變量.24 (1) 包含在該指令包含在該指令, 由指令直接給出操作數由指令直接給出操作數(2) 在在CPU的某個的某個R中中,指令中給出指令中給出R號號操作數可能存放的位置操作數可能存放的位置:25(3) 在在M某單元中某單元中,指令中給出主存單元地址碼指令中給出主存單元地址碼(4) 在堆棧中在堆棧中,可以隱含約定由棧頂指針可以隱含約定由棧頂指針SP提供地址提供地址(5) 在某個在某個I/O接口接口R中中(非非CPU中的中的R)26執行一條指令所進行的步驟:執行一條指令所進行的步驟: 取指令取指令 取源操作數取源操作數 取目的操作數取目的
15、操作數 執行運算操作執行運算操作 存放結果存放結果27操作碼操作碼 立即數立即數S S1、立即尋址、立即尋址指令直接給出操作數。指令直接給出操作數。定長格式:定長格式:變長格式:變長格式:基本指令基本指令 立即數立即數S S立即尋址主要用來提供常數、設置初值等。立即尋址主要用來提供常數、設置初值等。操作數在指令操作數在指令中,其長度固中,其長度固定、有限。定、有限。操作數在基本指令之操作數在基本指令之后,其長度可變。后,其長度可變。28操作碼操作碼 有效地址有效地址D D 2 、直接尋址、直接尋址指令直接給出操指令直接給出操作數地址。作數地址。存儲單元號存儲單元號寄存器號寄存器號( (數在數在
16、M M中中) )( (數在數在R R中中) ) 存儲器直接尋址存儲器直接尋址(直接尋址)(直接尋址)定長格式定長格式D D的位數有限的位數有限, ,訪存范圍受限訪存范圍受限變長格式變長格式 基本指令基本指令 D DL L D DH HD D的位數可覆蓋的位數可覆蓋整個存儲空間整個存儲空間操作數操作數S =S =(D D)29 【例3-2】指令中所給的地址碼EA為“2001H”,按照存儲器直接尋址方式讀取操作數。主存中部分地址與相應單元存儲的操作數之間的對應關系如下: 地址 存儲內容 2000H 3BA0H 2001H 1200H 2002H 2A01H 解:解:因為存儲器直接尋址方式中,指令中
17、的有效地址即主存中存儲操作數的地址,所以地址為“2001H”的存儲單元中的內容“1200H”即操作數。 本例實現了:操作數地址 操作。 M30操作碼操作碼 寄存器號寄存器號R R 存儲單元號存儲單元號寄存器號寄存器號( (數在數在M M中中)-)-存儲器間址存儲器間址( (數在數在M M中中)-)-寄存器間址寄存器間址 寄存器直接尋址寄存器直接尋址 (寄存器尋址(寄存器尋址 書書P70)格式格式 R R號的字段所占位號的字段所占位數少;數少; 訪問訪問R R比訪問比訪問M M快快S =S =(R R)用于訪問固定的存儲單元或寄存器。用于訪問固定的存儲單元或寄存器。3 、間接尋址、間接尋址指令給
18、出操作數的間接地址。指令給出操作數的間接地址。例例3-3 3-3 實現了:實現了:寄存器號寄存器號操作數操作數R31格式格式 存儲器間址存儲器間址操作碼操作碼 間接地址間接地址D D S =(D)S =(D)D=0030D=003000600060.00600060 S S M間址單元間址單元地址指針地址指針書書P71, P71, 例例3-43-4間址單元地址間址單元地址操作數地址操作數地址MM操作數操作數特點特點: : 間址單元內容的修改可以使同一間址單元內容的修改可以使同一條指令指向不同存儲單元中的操作數條指令指向不同存儲單元中的操作數, ,實現實現程序的循環和程序的共享程序的循環和程序的
19、共享. . 增加訪問次數增加訪問次數, ,減慢速度減慢速度. .32操作碼操作碼 寄存器號寄存器號R R 寄存器間址寄存器間址格式格式R R所占位數少;所占位數少;R R可提供全字長地址碼;可提供全字長地址碼;修改修改R R內容比修改內容比修改M M內容快。內容快。S =(R)S =(R)R=02R=02 M0040004000400040 S S. .地址指針地址指針書書P72, P72, 例例3-53-5結合講結合講寄存器號寄存器號操作數地址操作數地址RM操作數操作數33特點特點: 指針不變指針不變(由指令指定由指令指定),指針內容可變,使同一,指針內容可變,使同一指令可指向不同存儲單元,
20、以實現指令可指向不同存儲單元,以實現程序的循環程序的循環、共共享享,并,并提供轉移地址提供轉移地址。 比存儲器間址方式少訪問一次主存儲器比存儲器間址方式少訪問一次主存儲器.速度快速度快. 指令中寄存器號位數比主存地址碼位數少指令中寄存器號位數比主存地址碼位數少.兩種變形兩種變形: 自增型寄存器間址自增型寄存器間址 自減型寄存器間址自減型寄存器間址34寄存器號寄存器號操作數地址操作數地址RM操作數操作數R內容加內容加11) 自增型寄存器間址自增型寄存器間址2) 自減型寄存器間址自減型寄存器間址寄存器號寄存器號R內容先減內容先減1, 減后的結果為減后的結果為操作數地址操作數地址RM操作數操作數35
21、 堆棧是一種特殊的存儲器,訪問堆棧必須按堆棧是一種特殊的存儲器,訪問堆棧必須按照指定的規則進行操作。照指定的規則進行操作。用途用途:主要用于暫存數據以及在過程調用或處:主要用于暫存數據以及在過程調用或處理中斷時保存斷點信息。理中斷時保存斷點信息。堆棧的基本概念堆棧的基本概念 堆棧尋址堆棧尋址堆棧一般分為:堆棧一般分為:和和專用堆棧存儲器專用堆棧存儲器軟件堆棧軟件堆棧按堆棧的工作方式專門設計的存儲器按堆棧的工作方式專門設計的存儲器專用堆棧存儲器:專用堆棧存儲器:軟件堆棧:軟件堆棧: 由程序設計人員用軟件在主存儲器中劃出的由程序設計人員用軟件在主存儲器中劃出的一塊存儲區作為堆棧來使用。一塊存儲區作
22、為堆棧來使用。36堆棧堆棧已存放數據已存放數據 棧頂棧頂 棧底棧底.主存主存00000H00000H 堆棧的一端是固定的,稱為堆棧的一端是固定的,稱為棧底棧底。棧底是堆棧存儲區的最大。棧底是堆棧存儲區的最大地址單元(自底向上生長)。地址單元(自底向上生長)。 另一端是浮動的,稱為另一端是浮動的,稱為棧頂棧頂。在任何時刻,棧頂是最后存入信在任何時刻,棧頂是最后存入信息的存儲單元。棧頂隨著堆棧中息的存儲單元。棧頂隨著堆棧中存放信息的多少而改變。存放信息的多少而改變。 為了指示當前堆棧中存放數據位置,通常設置一為了指示當前堆棧中存放數據位置,通常設置一個寄存器來指示棧頂位置。其內容就象一個指針一個寄
23、存器來指示棧頂位置。其內容就象一個指針一樣,因此被稱為堆棧指針樣,因此被稱為堆棧指針SPSP(Stack PointerStack Pointer)。)。SPSP的內容始終指向棧頂單元的內容始終指向棧頂單元堆棧中數據進堆棧中數據進/ /出都由出都由SPSP來控制來控制37 堆棧中存取數據的規則是:堆棧中存取數據的規則是:“先進后出先進后出FILOFILO”(First-In-Last-OutFirst-In-Last-Out)。即最先送入堆棧的數據要到)。即最先送入堆棧的數據要到最后才能取出,而最后送入堆棧的數據,最先取出。最后才能取出,而最后送入堆棧的數據,最先取出。堆棧尋址格式:堆棧尋址格
24、式:操作碼操作碼 堆棧指針堆棧指針SP SP SPSP. S S.S =(SP)S =(SP) M M00700070.棧頂棧頂SPSP既可出現在指令中,也可隱含約定。既可出現在指令中,也可隱含約定。壓棧:壓棧: SPSP自動減自動減1 1,再存數。,再存數。先取數,先取數,SPSP再自動加再自動加1 1。出棧:出棧:(SP),自減型間址自減型間址。(SP)+,自增型間址自增型間址。38 變址尋址變址尋址(4 4)變址、基址尋址及其變化)變址、基址尋址及其變化 ( (書書P64)P64)變址寄存器號變址寄存器號S =(S =(R(RX X) )+ + D D) )格式格式操作碼操作碼 R RX
25、 X D D 形式地址形式地址修改量修改量( (可變可變) ) 基準地址基準地址( (不變不變) )指令給出一個寄存器號和一個地址量,寄存指令給出一個寄存器號和一個地址量,寄存器內容與地址量之和為有效地址。器內容與地址量之和為有效地址。 若把若把SP寄存器改為其它寄存器,則就是自減型寄寄存器改為其它寄存器,則就是自減型寄存器間址,存器間址,(R); 自增型寄存器間址自增型寄存器間址 (R) 。(圖示圖示: P64 圖圖3-11)39 為了能覆蓋全部存儲區間,形式地址為了能覆蓋全部存儲區間,形式地址D D的必須的必須足夠長。但由于足夠長。但由于D D的位數有限,會使訪存空間受的位數有限,會使訪存
26、空間受到限制到限制。例例. 用變址方式訪問一組連續區間內的數組元素。用變址方式訪問一組連續區間內的數組元素。D=D=首址首址D為存儲區首址;為存儲區首址;(R(RX X) )為所為所訪單元距離首址的長度;訪單元距離首址的長度;R RX X初值為初值為0 0,每訪問一個單,每訪問一個單元,元,(R(RX X)+1)+1。n-1n-1.0 01 12 2.D+1D+1D+2D+2D+n-1D+n-1 .40格式格式(D的位數只需覆蓋一的位數只需覆蓋一個較小的存儲區間)個較小的存儲區間) 基址尋址基址尋址基址寄存器號基址寄存器號R Rb b 4K 4K指令給出一個寄存器號和一個地址量,寄存指令給出一
27、個寄存器號和一個地址量,寄存器內容與地址量之和為有效地址。器內容與地址量之和為有效地址。操作碼操作碼 R Rb b D D 位移量位移量S =(S =(R(Rb b) )+ + D D) )基準地址基準地址( (可變可變) )相對于基址的位移相對于基址的位移( (不變不變) ) M.R Rb b 4K 4K 改變改變Rb的內容,程序能訪問存儲的內容,程序能訪問存儲空間中任何一個定長區間空間中任何一個定長區間( (如指令中如指令中位移量位移量D D的位數為的位數為1212位位, ,可訪可訪4K)4K)。41例例. .便于訪問兩維數組中某類便于訪問兩維數組中某類指定的元素。指定的元素。 4K 4K
28、 4K 4KR Rb b M.R Rb bD=2D=2D=2D=2學生姓名學生姓名n性別性別性別性別年齡年齡年齡年齡學生姓名學生姓名1例例. 程序重定位問題程序重定位問題例例. 擴展有限字長的尋址空間擴展有限字長的尋址空間42變址與基址的主要區別:變址與基址的主要區別:變址變址:指令提供:指令提供基準量基準量( (不變不變) )位數較長,位數較長,R R提供提供修改量修改量( (可可變變) );適于處理一維數組。;適于處理一維數組?;坊罚褐噶钐峁褐噶钐峁┪灰屏课灰屏? (不變不變) )較短較短,R R提供提供基準量基準量( (可變可變) );用于擴大有限字長指令的訪用于擴大有限字長指令的
29、訪存空間。存空間。思考:思考: 表面上看表面上看, 基基址尋址和變址尋址尋址和變址尋址的有效地址計址的有效地址計算幾乎一樣算幾乎一樣! 那那這兩種方式區別這兩種方式區別在哪呢在哪呢?43S =(RS =(RX X)+(R)+(Rb b)+ D)+ D)格式格式 基址加變址基址加變址變址寄存器號變址寄存器號指令給出兩個寄存器號和一個地址量,寄存器內指令給出兩個寄存器號和一個地址量,寄存器內容與地址量之和為有效地址。容與地址量之和為有效地址。位移量位移量操作碼操作碼 R RX X R Rb b D D 基址寄存器號基址寄存器號便于處理兩維數組。便于處理兩維數組。44格式格式 相對尋址相對尋址指令給
30、出位移量,指令給出位移量,PCPC內容與位移量之和為有效地址。內容與位移量之和為有效地址。位移量位移量操作碼操作碼 PCPC D D 或隱含指定或隱含指定S =(PC)S =(PC)D)D)D的取值可為正負,的取值可為正負,因此有效地址就相對因此有效地址就相對PCPC上下浮動上下浮動, ,給編程給編程帶來方便帶來方便。45格式格式 頁面尋址(頁面尋址(P66)指令給出位移量指令給出位移量D,PCPC的高位部分的高位部分與與D拼接,形成拼接,形成有效地址。有效地址。位移量位移量操作碼操作碼 PCPC D D 或隱含指定或隱含指定S =(S =(PC)(PC)H H,D D) )例例. M為為64
31、KB,劃分為,劃分為256頁,每頁頁,每頁256B。頁號頁號頁內地址頁內地址PC0165H7C.017CHS頁面尋頁面尋址指令址指令位移量位移量46 用于頁式管理存儲系統。用于頁式管理存儲系統。 尋址速度快,適于組織程序模塊,尋址速度快,適于組織程序模塊, 有效利用存儲空間。有效利用存儲空間。思考思考:頁面尋址方式頁面尋址方式, 用用PC的高位部分多少的高位部分多少位進行拼接位進行拼接?回答回答:要看主存分為多少個頁要看主存分為多少個頁?頁的數量用多少位來表頁的數量用多少位來表示示,就將就將PC的高若干位截的高若干位截下下.1. 要看主存規定每個頁有要看主存規定每個頁有多少容量多少容量, 頁容
32、量用多少頁容量用多少位來表示位來表示,形式地址就應形式地址就應該為多少位該為多少位,與與PC高位截高位截下的部分進行拼裝下的部分進行拼裝.472. 指令中對尋址方式表示指令中對尋址方式表示 (1 1)用操作碼隱含說明不同尋址方式)用操作碼隱含說明不同尋址方式例例. .某機指令用操作碼最高兩位來指示尋某機指令用操作碼最高兩位來指示尋址方式址方式0000:RRRR型指令,寄存器型指令,寄存器- -寄存器尋址寄存器尋址0101:RXRX型指令,寄存器型指令,寄存器- -變址尋址變址尋址1010:SISI型指令,基址型指令,基址- -立即尋址立即尋址1111:SSSS型指令,基址型指令,基址- -基址
33、尋址基址尋址48(2 2)指令中設置專門字段說明尋址方式)指令中設置專門字段說明尋址方式例例. .某機指令的每個地址字段中各設置一個某機指令的每個地址字段中各設置一個3 3位的尋址方式字段。位的尋址方式字段。操作碼操作碼 尋址方式尋址方式 R R 尋址方式尋址方式 R R 源地址字段源地址字段目的地址字段目的地址字段3位位3位位493.3 指令類型指令類型 3.3.1 指令系統的設計原則 指令系統是程序設計者看機器的主要屬性,是軟、硬件的主要界面,它在很大程度上決定了計算機具有的基本功能。設計和確定指令系統主要應考慮如何有利于滿足系統的基本功能,有利于優化機器的性能價格比有得指令系統今后的發展
34、與改進。50 指令系統的設計包括指令的功能(操作類型、尋址方式和具體操作內容)和指令格式的設計,應當由編譯程序設計人員同系統結構設計人員共同配合來進行。(1)根據應用,初擬出指令的分類和具體的指令;(2)試編出用該指令系統設計的各種高級語言的編譯程序;51 (3)各種算法編寫大量測試程序進行模擬測試,看指令系統的操作碼和尋址方式效能是否比較高。 (4)將程序中高頻出現的指令串復合改成一條強功能新指令,即改用硬件方式實現;而將頻度很低的指令的操作改成用基本的指令組成的指令串來完成,即用軟件方式實現。 52應該遵循的設計原則為: (1) 完備性指令系統要指令豐富、功能齊全、使用方便,具有所有的基本
35、指令。(2) 正交性又稱為分離原則或互不相干原則,即指令中各個有不同含義的字段之間,如操作類型、尋址方式、數據類型等,在編碼時應互相獨立、互不相關。(3) 有效性指用指令系統中的指令編寫的程序運行效率高、占用空間小、執行速度快。53 (4) 規整性指指令系統應具有對稱性、勻齊性、指令與數據格式的一致性。 對稱性要求指令要將所有寄存器和存儲單元同等對待,使任何指令都可以使用所有的尋址方式,減少特殊操作和例外情況; 勻齊性要求一種操作可以支持多種數據類型,如字節、字、雙字、十進制數、浮點數等; 指令與數據格式的一致性要求指令長度與機器字長和數據長度有一定的關系,便于指令和數據的存取及處理。54 (
36、5) 兼容性 為滿足軟件兼容的要求,系列機的各種機型之間應該具有基本相同的指令集,即指令系統應該具有一定的兼容性,至少要做到向后兼容。也就是說,后推出的機器上可以運行先推出的機器上的程序。(6) 可擴展性一般來講,后推出的機型中總要添加一些新的指令,所以要保留一定余量的操作碼空間,以便日后進行擴展所用。 553.3.1 3.3.1 數據傳送指令數據傳送指令 ( (書書P75)P75)源地址源地址 目的地址目的地址數數設置時需考慮:設置時需考慮:(1 1)規定傳送范圍)規定傳送范圍例例. DJS-100. DJS-100系列:系列: 8 80 0X86X86: IBM370 IBM370:R R
37、 M MR R M M,R R R RR R M M,R R R R,M M M M解釋解釋:傳送指令傳送指令,就是就是”復復制制”指令指令.主存中數據復制主存中數據復制,還可以被多次使還可以被多次使用用.1. 堆棧指針下移堆棧指針下移,視視為數據不在存在為數據不在存在.56(2 2)指明傳送單位)指明傳送單位例例. . 用操作碼說明用操作碼說明(VAX-11)(VAX-11):用地址量說明用地址量說明(8(80 0X86)X86):傳送次數由傳送次數由計數器控制計數器控制MOVMOVB B 8 8MOV MOV AXAX,BXBX MOVMOVW W 1616MOVMOVL L 3232MO
38、V MOV ALAL,BLBL MOV MOV EAXEAX,EBXEBX 例例. 80X86. 80X86的串傳送指令:的串傳送指令:REPREP MOVSWMOVSW(3 3)設置尋址方式)設置尋址方式在尋址方式的設置上幾乎不受限制,能比較在尋址方式的設置上幾乎不受限制,能比較集中地反映指令系統各種尋址方式的實現。集中地反映指令系統各種尋址方式的實現。8 81616323257D70IRQ0地址線地址線寄存器選擇寄存器選擇 命令字命令字R 狀態字狀態字R數據緩沖器數據緩沖器 控制邏輯控制邏輯數據線數據線數據線數據線數據線數據線中斷控制器中斷控制器INTINTA命令命令IRQ7狀態狀態數據數
39、據外部設備外部設備系統總線系統總線(8259)IRQi M MCPUCPU主機板主機板接口板接口板3.3.43.3.4輸入輸入/ /輸出指令輸出指令各種信息各種信息主機主機 外設外設信息包括信息包括: :數據數據命令命令狀態狀態 輸入輸出指令輸入輸出指令主機對外設的訪問主機對外設的訪問對外設接口寄存器的訪問對外設接口寄存器的訪問解釋解釋:外設多外設多,具體操作多樣具體操作多樣,事先無法確知事先無法確知.只有只有I/O指令向接口發指令向接口發送命令字送命令字,再轉化為與再轉化為與具體設備匹配的命令具體設備匹配的命令.58D70IRQ0地址線地址線寄存器選擇寄存器選擇 命令字命令字R 狀態字狀態字
40、R數據緩沖器數據緩沖器 控制邏輯控制邏輯數據線數據線數據線數據線數據線數據線中斷控制器中斷控制器INTINTA命令命令IRQ7狀態狀態數據數據外部設備外部設備系統總線系統總線(8259)IRQi M MCPUCPU主機板主機板接口板接口板n 命令字寄存器命令字寄存器接收接收CPUCPU發向外設的命令發向外設的命令字,轉換為相應操作命字,轉換為相應操作命令送外設。令送外設。n 狀態字寄存器狀態字寄存器反映設備和接口的運行反映設備和接口的運行狀態。狀態。n 數據緩沖器數據緩沖器主機和外設之間需要傳主機和外設之間需要傳送數據。送數據。59設置時設置時I/O指令時需考慮如下因素:指令時需考慮如下因素:
41、(1 1)I/OI/O指令的功能擴展指令的功能擴展如何用通用如何用通用I/OI/O指令實現對各種具體設備的控制?指令實現對各種具體設備的控制? I/O I/O指令中留有擴展余地指令中留有擴展余地指令中某些字段編碼事先不定義,需要時再約指令中某些字段編碼事先不定義,需要時再約定其含義。定其含義。用于外設種類、數量不多的場合。用于外設種類、數量不多的場合。(2 2)主機對外設的尋址方式)主機對外設的尋址方式(3 3)I/OI/O指令設置方式指令設置方式(1 1)I/OI/O指令的功能擴展指令的功能擴展60(2 2)主機對外設的尋址方式)主機對外設的尋址方式如何設置控制如何設置控制/ /狀態寄存器是
42、接口設計的關鍵。狀態寄存器是接口設計的關鍵。尋找尋找I/OI/O接口中的寄存器的方式。接口中的寄存器的方式。 主機用主機用輸出指令輸出指令或或傳送指令傳送指令將具體設備的控制命令將具體設備的控制命令按約定的代碼格式按約定的代碼格式, ,作為輸出數據送往接口中的作為輸出數據送往接口中的控制控制寄存器寄存器,向外設發出命令。,向外設發出命令。 外設的狀態信息也以某種格式放在接口的外設的狀態信息也以某種格式放在接口的狀態寄存狀態寄存器器中,主機用中,主機用輸入指令輸入指令或或傳送指令傳送指令從從狀態寄存器狀態寄存器中取中取出有關信息進行查詢、分析。出有關信息進行查詢、分析。如何為如何為I/OI/O端
43、口分配地址?端口分配地址?I/O端口端口 I/O I/O接口中設置控制接口中設置控制/ /狀態寄存器狀態寄存器61 單獨編址單獨編址I/OI/O地址空間不占主存空間,可與主存空間重疊。地址空間不占主存空間,可與主存空間重疊。=1 =1 訪問存儲器訪問存儲器=0 =0 訪問訪問I/OI/O端口端口需設置標志信號用于區分訪問對象,如需設置標志信號用于區分訪問對象,如編址到寄存器編址到寄存器:為每個寄存器:為每個寄存器(I/O(I/O端口端口) )分配獨分配獨 立的端口地址;立的端口地址; I/OI/O指令中給出端口地址。指令中給出端口地址。M/IOM/IO62 統一編址統一編址I/OI/O端口占據
44、部分地址空間。端口占據部分地址空間。常將地址空間的低端分配給主存單元,高端分配常將地址空間的低端分配給主存單元,高端分配給給I/OI/O端口,以示區分。端口,以示區分。編址到寄存器編址到寄存器u 設置設置專用專用I/OI/O指令指令針對單獨編址,用針對單獨編址,用I/OI/O指令訪問指令訪問I/OI/O端口。端口。指令中說明輸入指令中說明輸入/ /輸出操作,并給出端口地址。輸出操作,并給出端口地址。 :為每個寄存器:為每個寄存器(I/O(I/O端口端口) )分配總分配總 線地址;線地址; 訪問外設時,指令中給出總線地址。訪問外設時,指令中給出總線地址。(3 3)I/OI/O指令設置方式指令設置
45、方式顯式顯式I/OI/O指令指令63例例. 80X86. 80X86的的I/OI/O指令設置指令設置 輸入:輸入:IN ALIN AL,n n;端口地址端口地址(n) AL(n) AL( (直接端口尋址直接端口尋址) ) IN ALIN AL,DXDX;間接端口地址間接端口地址(DX) AL(DX) AL( (間接端口尋址間接端口尋址) ) 輸出:輸出:OUT nOUT n,ALAL;(AL) n(AL) n( (直接端口尋址直接端口尋址) ) OUT DXOUT DX,ALAL;(AL) (DX)(AL) (DX)( (間接端口尋址間接端口尋址) )64主機調用輸入機:主機調用輸入機:u 用
46、用傳送指令傳送指令實現實現I/OI/O操作操作針對統一編址,用傳送指令訪問針對統一編址,用傳送指令訪問I/OI/O端口。端口。不設專用不設專用I/OI/O指令。指令。例例. . 某機某機I/OI/O接口中設置接口中設置控制控制/ /狀態寄存器狀態寄存器CSRCSR, ,其總線地址為其總線地址為177550177550(8(8進制進制) )數據緩沖寄存器數據緩沖寄存器DBRDBR,其總線地址為,其總線地址為177552177552隱式隱式I/OI/O指令指令控制控制/ /狀態字格式:狀態字格式:出錯出錯 故障故障 忙忙 完成完成 允許中斷允許中斷 維護維護 校驗校驗 啟動啟動15 14 12 7
47、 6 2 1 015 14 12 7 6 2 1 0啟動:啟動:測試:測試:存存/ /取數:取數:主機主機 177550177550控制字控制字( (啟動位為啟動位為1)1)傳送指令傳送指令主機主機 177550177550 狀態字狀態字傳送指令傳送指令主機主機 177552177552 數據數據傳送指令傳送指令65u 通過通過I/OI/O處理機進行處理機進行I/OI/O操作操作CPUCPU執行簡單執行簡單I/OI/O指令指令 ( (啟動、停止、查詢、清除啟動、停止、查詢、清除) )兩級兩級I/OI/O指令指令I/OI/O處理機執行處理機執行I/OI/O操作指令操作指令 ( (輸入、輸出輸入、
48、輸出) )由例可見由例可見, ,在通用傳送指令中在通用傳送指令中, ,并不直接包含外并不直接包含外設的啟動命令設的啟動命令, ,通過數據總線向接口中的命令通過數據總線向接口中的命令R R送命令字送命令字( (包含啟動位包含啟動位),),這樣來啟動外圍設備這樣來啟動外圍設備. .66u 設置時需考慮設置時需考慮操作數類型操作數類型、符號符號、進制進制等;等;(1 1)算術運算指令)算術運算指令3.3.2 3.3.2 算術邏輯運算指令算術邏輯運算指令(2 2)邏輯運算指令)邏輯運算指令實現對代碼位的實現對代碼位的設置設置、測試測試、清除清除、分離分離、修改修改等等與與或或異或異或u 加加, ,減減
49、, ,加加1,1,減減1,1,求補求補, ,比較大小比較大小, ,乘乘, ,除除, ,向量或向量或矩陣求和求級矩陣求和求級等等u 運算結束后設置相應運算結束后設置相應狀態標志狀態標志。67 4.邏輯運算類指令邏輯運算類指令 計算機中常設置的4種基本邏輯運算有邏輯與(如AND)、邏輯或(如OR)、邏輯非(如NOT)及邏輯異或(如XOR)。在這4個運算操作中,除了NOT只需要一個操作數地址外,其他三個均需要兩個地址。對于位測試、位清除、位設置、位修改等位操作,有的計算機設置; 專門的位操作指令,而有的則通過邏輯運算指令來實現。68 (1) 利用邏輯“與”運算實現位測試位測試是指測試某指定位是否為“
50、1”。將被檢測代碼作為目的操作數,根據被檢測位設置相應的屏蔽字,并作為源操作數。設置屏蔽字時,對應于被檢測位的屏蔽位置“1”,其余置“0”,然后將兩代碼相“與”。運算后的結果中,由于只有被檢測位保持原來狀態,其余位均被屏蔽為“0”,所以可對被檢測位進行測試。如目的操作數為“11101011”,對其中的“1”做測試,可設置屏蔽字為“00001000”,將兩代碼相“與”后可知被測位為“1”。69 例如,Intel8086指令系統中的邏輯運算指令:TEST AL,08H; 將寄存器AL中的操作數與“00001000H”相“與”,若結果為全零,表示AL3=0;否則AL3=1。 (2) 利用邏輯“或”運
51、算實現位設置 位設置是將指定位設置為“1”。設置屏蔽字的時候,對應于設置位的屏蔽位置“1”,其余位置“0”,然后將兩個代碼相“或”。70 5.移位操作指令移位操作指令 按照移位的方向不同可以分為左移和右移,按照移位的方式不同可以分為算術移位、邏輯移位和循環移位,實現對操作數左移或右移一位或若干位。移位類指令一般只需要一個操作數地址。對于算術移位指令,對象是具有數值大小的數據,移位后數值的大小會發生變化。在計算機中對于二進制數,左移不發生溢出時,符號位保持不變;右移時,符號位保持不變,數值位連同符號位一起依次右移。左移一位可以實現乘2運算,右移一位可以實現除2運算。71 邏輯移位是將移位對象看作
52、沒有數值大小的一組代碼,左移時最低位添“0”,右移時最高位添“0”。一般地,將移位時所移出的位保存在狀態寄存器的進位位C中。循環移位分為小循環(不帶進位,自身循環)和大循環(和進位位C一起循環),常與算術邏輯移位指令一起實現多倍字長的移位。72控制程序流程。控制程序流程。(1 1)轉移指令)轉移指令3.3.3 3.3.3 程序控制指令程序控制指令(2 2)轉子指令與返回指令)轉子指令與返回指令轉子:操作碼轉子:操作碼 子程序入口子程序入口無條件轉移無條件轉移條件轉移條件轉移循環循環:操作碼:操作碼 轉移地址轉移地址:操作碼:操作碼 轉移地址轉移地址 轉移條件轉移條件:轉移條件為循環計數值:轉移條件為循環計數值返回:操作碼返回:操作碼 返回地址返回地址同一條返回指令應能提供多個不同的返回地址。同一條返回指令應能提供多個不同的返回地址。返回地址的存?。悍祷氐刂返拇嫒。河枚褩4娣欧祷氐刂?。用堆棧存放返回地址。73(3 3)軟中斷指令)軟中斷指令程序程序自陷指令自陷指令表示不同的功能調用表示不同的功能調用調試程序調試程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 短視頻營銷策略解析
- 湖北省2025年中考第三次模擬考試道德與法治試卷(含答案)
- 6月排產內銷強于外銷空調內銷高增
- 農村土地流轉2025年土地流轉與農村土地流轉政策創新實踐規范化管理報告
- 2025年工業互聯網平臺同態加密技術在智慧城市建設中的應用研究報告
- 基于2025年餐飲行業現狀的突發事件應急管理預案編制策略報告
- 2025年工業碳捕獲與封存(CCS)技術應用案例環保效益與政策環境研究報告
- 城市公共交通樞紐2025年社會穩定風險評估與風險防范研究報告
- 2025年私募股權投資基金行業投資熱點:人工智能芯片設計與應用退出策略深度剖析
- 2025年智能客服語音識別系統在銀行行業的應用案例分析報告
- 二手房砸墻合同協議書
- 《電力設施保護》課件
- 瓦斯防治考試題及答案
- 混凝土行業人員培訓課件
- 建筑設計防火規范
- 2025-2030工程監理行業市場深度分析及競爭格局與投資價值研究報告
- 福州一號線盾構法地鐵工程整體施工組織設計
- GB 10770-2025食品安全國家標準嬰幼兒罐裝輔助食品
- 單病種質量管理實施方案
- 旅游保險產品講解
- Unit9SectionB2a-2e課件-人教版八年級英語下冊
評論
0/150
提交評論