第4章指令系統(tǒng)_第1頁
第4章指令系統(tǒng)_第2頁
第4章指令系統(tǒng)_第3頁
第4章指令系統(tǒng)_第4頁
第4章指令系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第4 4章章 指令系統(tǒng)指令系統(tǒng)本章內(nèi)容:本章內(nèi)容:v指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求 v指令格式指令格式v指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 v堆棧尋址方式堆棧尋址方式v典型指令典型指令 4.1 指令系統(tǒng)的發(fā)展和性能要求指令系統(tǒng)的發(fā)展和性能要求v什么是指令系統(tǒng)什么是指令系統(tǒng) 一臺計算機分為兩個部分,控制部件和執(zhí)行部件,控制一臺計算機分為兩個部分,控制部件和執(zhí)行部件,控制器就是控制部件,而運算器,存儲器,外圍設(shè)備對控制器來器就是控制部件,而運算器,存儲器,外圍設(shè)備對控制器來說就是執(zhí)行部件。說就是執(zhí)行部件。 控制器通過控制總線向執(zhí)行部件發(fā)送的各種控制命令稱控制器通過控制總線

2、向執(zhí)行部件發(fā)送的各種控制命令稱為為微命令微命令,執(zhí)行部件接受命令后所進(jìn)行的操作稱為,執(zhí)行部件接受命令后所進(jìn)行的操作稱為微操作。微操作。微指令微指令:一組實現(xiàn)一定操作功能的微命令的組合,屬于硬件:一組實現(xiàn)一定操作功能的微命令的組合,屬于硬件機器指令(指令)機器指令(指令):一組可以完成一個獨立的算術(shù)運算或邏輯運算的微:一組可以完成一個獨立的算術(shù)運算或邏輯運算的微指令的組合,與硬件緊密關(guān)聯(lián)。指令的組合,與硬件緊密關(guān)聯(lián)。 宏指令宏指令:由若干條機器指令組成的軟件指令,屬于軟件;:由若干條機器指令組成的軟件指令,屬于軟件;指令系統(tǒng)指令系統(tǒng):一臺計算機中所有機器指令的集合,它是表征一臺計算機性:一臺計算

3、機中所有機器指令的集合,它是表征一臺計算機性能的重要因素。能的重要因素。v計算機指令系統(tǒng)的發(fā)展過程計算機指令系統(tǒng)的發(fā)展過程50年代:年代:指令系統(tǒng)只有定點加減、邏輯運算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至指令系統(tǒng)只有定點加減、邏輯運算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至幾十條指令。幾十條指令。 60年代后期:年代后期:增加了乘除運算、浮點運算、十進(jìn)制運算、字符串處理等增加了乘除運算、浮點運算、十進(jìn)制運算、字符串處理等指令,指令數(shù)目多達(dá)一二百條,尋址方式也趨多樣化。指令,指令數(shù)目多達(dá)一二百條,尋址方式也趨多樣化。60年代后期開始年代后期開始出現(xiàn)系列計算機出現(xiàn)系列計算機(指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計算指

4、基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計算機機)一個系列往往有多種型號,它們在結(jié)構(gòu)和性能上有所差異。同一系列一個系列往往有多種型號,它們在結(jié)構(gòu)和性能上有所差異。同一系列的各機種有共同的指令集而且新推出的機種指令系統(tǒng)一定包含所有舊機的各機種有共同的指令集而且新推出的機種指令系統(tǒng)一定包含所有舊機種的全部指令種的全部指令,舊機種上運行的各種軟件可以不加任何修改便可在新機種舊機種上運行的各種軟件可以不加任何修改便可在新機種上運行,大大減少了軟件開發(fā)費用。上運行,大大減少了軟件開發(fā)費用。 70年代末期:年代末期:大多數(shù)計算機的指令系統(tǒng)多達(dá)幾百條。我們稱這些計算機大多數(shù)計算機的指令系統(tǒng)多達(dá)幾百條。我們

5、稱這些計算機為為復(fù)雜指令系統(tǒng)計算機復(fù)雜指令系統(tǒng)計算機(CISC)。但是如此龐大的指令系統(tǒng)難以保證其正。但是如此龐大的指令系統(tǒng)難以保證其正確性,不易調(diào)試維護(hù),造成硬件資源浪費。為此人們又提出了便于確性,不易調(diào)試維護(hù),造成硬件資源浪費。為此人們又提出了便于VLSIVLSI技術(shù)實現(xiàn)的技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機(精簡指令系統(tǒng)計算機(RISC)。 v指令系統(tǒng)性能的要求指令系統(tǒng)性能的要求 指令系統(tǒng)的性能決定了計算機的基本功能,它的設(shè)計直接指令系統(tǒng)的性能決定了計算機的基本功能,它的設(shè)計直接關(guān)系到計算機的硬件結(jié)構(gòu)和用戶的需要。關(guān)系到計算機的硬件結(jié)構(gòu)和用戶的需要。一個完善的指令系統(tǒng)應(yīng)滿足如下四方面的要求:一個

6、完善的指令系統(tǒng)應(yīng)滿足如下四方面的要求: 完備性完備性 用匯編語言編寫各種程序時,指令系統(tǒng)直接提供用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。的指令足夠使用,而不必用軟件來實現(xiàn)。 有效性有效性利用該指令系統(tǒng)所編寫的程序能夠在計算機上高利用該指令系統(tǒng)所編寫的程序能夠在計算機上高效率運行,主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。效率運行,主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。 規(guī)整性規(guī)整性規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。式和數(shù)據(jù)格式的一致性。 兼容性兼容性系列機各機種之間具有相同的基本結(jié)

7、構(gòu)和共同的系列機各機種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,低檔機上運行的軟件可以在高檔機上運行,即做基本指令集,低檔機上運行的軟件可以在高檔機上運行,即做到到“向下兼容向下兼容” 。 4.2 指令格式指令格式 結(jié)果結(jié)果y y存放在存放在1313單元單元y y 數(shù)據(jù)數(shù)據(jù)x x存放在存放在1212單元單元x x 數(shù)據(jù)數(shù)據(jù)c c存放在存放在1111單元單元c c 數(shù)據(jù)數(shù)據(jù)b b存放在存放在1010單元單元b b 數(shù)據(jù)數(shù)據(jù)a a存放在存放在9 9單元單元a a運算完畢運算完畢, ,機器暫停工作機器暫停工作 停止停止將結(jié)果打印出來將結(jié)果打印出來 打印打印運算器結(jié)果送運算器結(jié)果送1313號單元號單元

8、 存數(shù)存數(shù) 1313完成完成ax+b-c,ax+b-c,結(jié)果保留在運算器上結(jié)果保留在運算器上 減法減法 1111完成完成ax+b,ax+b,結(jié)果保留在運算器上結(jié)果保留在運算器上 加法加法 1010完成完成a a* *x,x,結(jié)果保留在運算器上結(jié)果保留在運算器上 乘法乘法 1212存儲器存儲器9 9號地址的數(shù)送運算器號地址的數(shù)送運算器 取數(shù)取數(shù) 9 9 說說 明明 指令指令13131212111110109 9數(shù)據(jù)地址數(shù)據(jù)地址7 76 65 54 43 32 21 1指令地址指令地址數(shù)據(jù)數(shù)據(jù)操作碼操作碼地址碼地址碼引例:計算引例:計算y=ax+b-cy=ax+b-c這個題目這個題目v指令格式指令

9、格式 指令格式指用機器字表示的指令的結(jié)構(gòu)形式,由兩部分指令格式指用機器字表示的指令的結(jié)構(gòu)形式,由兩部分組成,即進(jìn)行何種操作和從存儲器的那個單元取數(shù);前者稱組成,即進(jìn)行何種操作和從存儲器的那個單元取數(shù);前者稱為操作碼,后者稱為地址碼。所以指令的一般格式為:為操作碼,后者稱為地址碼。所以指令的一般格式為: 操作碼字段操作碼字段 地址碼字段地址碼字段操作碼操作碼: :指出指令所進(jìn)行的操作指出指令所進(jìn)行的操作, ,如加、減、乘、除、取數(shù)如加、減、乘、除、取數(shù)以及存數(shù)等等。以及存數(shù)等等。地址碼地址碼: :表示參加運算的數(shù)據(jù)應(yīng)從存儲器的哪個單元取表示參加運算的數(shù)據(jù)應(yīng)從存儲器的哪個單元取, ,運運算的結(jié)果應(yīng)

10、存到哪個單元。算的結(jié)果應(yīng)存到哪個單元。n個機器字個機器字v指令字長度指令字長度 指令字長度:指令字長度:一個指令字中包含二進(jìn)制代碼的位數(shù)。一個指令字中包含二進(jìn)制代碼的位數(shù)。機器字長:機器字長:計算機能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計算機能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計算機的運算精度。計算機的運算精度。單字長指令:指令字長等于機器字長度的指令。單字長指令:指令字長等于機器字長度的指令。半字長指令:指令字長等于半個機器字長度的指令。半字長指令:指令字長等于半個機器字長度的指令。雙字長指令:指令字長等于兩個機器字長度的指令。雙字長指令:指令字長等于兩個機器字長度的指令。多字長指令:指令

11、字長等于幾個機器字長度的指令。多字長指令:指令字長等于幾個機器字長度的指令。 使用多字長指令,目的在于提供使用多字長指令,目的在于提供足夠的地址位足夠的地址位來解決訪問來解決訪問內(nèi)存任何單元的尋址問題。其主要缺點是必須兩內(nèi)存任何單元的尋址問題。其主要缺點是必須兩次或多次訪次或多次訪問內(nèi)存問內(nèi)存才能取出一整條指令,降低了的運算速度,又占用了才能取出一整條指令,降低了的運算速度,又占用了更多的存儲空間。更多的存儲空間。指令指令操作碼操作碼加法加法001減法減法010乘法乘法011除法除法100取數(shù)取數(shù)101存數(shù)存數(shù)110打印打印111停機停機000v操作碼操作碼 指令的操作碼部分可以變成二進(jìn)制代碼

12、。我們用指令的操作碼部分可以變成二進(jìn)制代碼。我們用3位二位二進(jìn)制數(shù)表示八種指令的操作碼(如下表)。進(jìn)制數(shù)表示八種指令的操作碼(如下表)。 組成操作碼的字段位數(shù)一般取決于計算機指令系統(tǒng)復(fù)雜組成操作碼的字段位數(shù)一般取決于計算機指令系統(tǒng)復(fù)雜程度。如果有程度。如果有32條指令就要有條指令就要有5位操作碼。一般說來,包含位操作碼。一般說來,包含n位的操作碼最多能夠表示位的操作碼最多能夠表示2n條指令條指令按操作碼的位數(shù)是否固定:按操作碼的位數(shù)是否固定:固定長度的操作碼:所有指令長固定長度的操作碼:所有指令長度均相同。特點是控制簡單,速度度均相同。特點是控制簡單,速度快,適用于指令條數(shù)不多的場合??欤m用

13、于指令條數(shù)不多的場合??勺冮L度的操作碼:頻繁使用的可變長度的操作碼:頻繁使用的指令用位數(shù)較少的操作碼,不常使指令用位數(shù)較少的操作碼,不常使用的指令可利用操作碼擴展技術(shù)進(jìn)用的指令可利用操作碼擴展技術(shù)進(jìn)行擴展。行擴展。v指令助記符指令助記符 由于硬件只能識別由于硬件只能識別1 1和和0 0,并且為了便于存儲,所以采用二,并且為了便于存儲,所以采用二進(jìn)制操作碼是十分必要的,但是我們用二進(jìn)制來書寫程序卻非進(jìn)制操作碼是十分必要的,但是我們用二進(jìn)制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用常麻煩。為了便于書寫和閱讀程序,每條指令通常用3 3個或個或4 4個個英文縮寫字母來表示。這種縮寫碼

14、叫做指令助記符。英文縮寫字母來表示。這種縮寫碼叫做指令助記符。 指令指令操作碼操作碼指令助記符指令助記符加法加法001ADDADD減法減法010SUBSUB傳送傳送000MOVMOV乘法乘法011MULMUL除法除法100DIVDIV跳轉(zhuǎn)跳轉(zhuǎn)101JMPJMP存數(shù)存數(shù)110STOSTO取數(shù)取數(shù)111LADLADv地址碼地址碼 根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。一般的操作數(shù)有操作數(shù)指令或幾地址指令。一般的操作數(shù)有被操作數(shù)被操作數(shù)、操作操作數(shù)數(shù)及及操作結(jié)果操作結(jié)果這三種數(shù),因而就形成了三地址指令格式。這三種數(shù),因

15、而就形成了三地址指令格式。三地址指令三地址指令8 8 8 8 OP A1 A2 A3(A1) OP (A2) A3 其中操作數(shù)其中操作數(shù)A1、A2、A3可以是內(nèi)存單元的地址,也可以可以是內(nèi)存單元的地址,也可以是運算器中通用寄存器的地址,如果三地址指令中是運算器中通用寄存器的地址,如果三地址指令中A A1 1、A A2、A A3都是內(nèi)存單元,則指令需要都是內(nèi)存單元,則指令需要4次訪問存儲器,存儲器的尋址范次訪問存儲器,存儲器的尋址范圍圍28 = 256。為了提高指令執(zhí)行的速度和擴大尋址范圍出現(xiàn)了。為了提高指令執(zhí)行的速度和擴大尋址范圍出現(xiàn)了兩地址指令和一地址指令。兩地址指令和一地址指令。二地址指令

16、二地址指令 二地址指令常稱為雙操作數(shù)指令,它的兩個地址碼字段分二地址指令常稱為雙操作數(shù)指令,它的兩個地址碼字段分別指明參與操作的兩個數(shù)在內(nèi)存中或運算器中通用寄存器的地別指明參與操作的兩個數(shù)在內(nèi)存中或運算器中通用寄存器的地址,址,A1A1作存放操作結(jié)果的地址作存放操作結(jié)果的地址, ,稱為稱為目的操作數(shù)目的操作數(shù)(D)(D),A2A2稱為源稱為源操作數(shù)操作數(shù)(S)(S)。 OP A1 A28 12 12(A1) OP (A2) A1尋址范圍尋址范圍 212 = 4 K二地址指令格式中,從操作數(shù)的物理位置來說,又可歸結(jié)為三種類型。二地址指令格式中,從操作數(shù)的物理位置來說,又可歸結(jié)為三種類型。 存儲器

17、存儲器- -存儲器(存儲器(SSSS)型指令)型指令:操作數(shù)都放在內(nèi)存里,因此機器執(zhí)行這種指令操作數(shù)都放在內(nèi)存里,因此機器執(zhí)行這種指令需要多次訪問內(nèi)存。需要多次訪問內(nèi)存。 寄存器寄存器- -寄存器(寄存器(RRRR)型指令)型指令:操作數(shù)都在寄存器中。機器執(zhí)行寄存器操作數(shù)都在寄存器中。機器執(zhí)行寄存器- -寄存器寄存器型指令的速度很快,因為執(zhí)行這類指令,不需要訪問內(nèi)存。型指令的速度很快,因為執(zhí)行這類指令,不需要訪問內(nèi)存。 寄存器寄存器- -存儲器(存儲器(RSRS)型指令)型指令:執(zhí)行此類指令時,既要訪問內(nèi)存單元,又要訪執(zhí)行此類指令時,既要訪問內(nèi)存單元,又要訪問寄存器。問寄存器。一地址指令一地址

18、指令 一地址指令常稱為單操作數(shù)指令。通常這種指令以運算器一地址指令常稱為單操作數(shù)指令。通常這種指令以運算器中累加寄存器中累加寄存器ACAC中的數(shù)據(jù)為被操作數(shù),指令字的地址碼字段所中的數(shù)據(jù)為被操作數(shù),指令字的地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄存器指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄存器ACAC中。中。 零地址指令零地址指令 零地址指令的指令字中只有操作碼,而沒有地址碼。例如零地址指令的指令字中只有操作碼,而沒有地址碼。例如停機指令就不需要地址碼停機指令就不需要地址碼 。因為停機指令不需要操作數(shù)。因為停機指令不需要操作數(shù)。OP A18 24 (AC) OP (A1) AC尋址范圍

19、尋址范圍 224 = 16 M OP v指令格式舉例指令格式舉例例:某例:某1616位機指令格式如下所示,其中位機指令格式如下所示,其中OPOP為操作碼,試分析指為操作碼,試分析指令格式的特點。令格式的特點。 單字長二地址指令。單字長二地址指令。操作碼字段操作碼字段OPOP可以指定可以指定128128條指令。條指令。 源寄存器和目標(biāo)寄存器都是通用寄存器源寄存器和目標(biāo)寄存器都是通用寄存器( (可分別指定可分別指定1616個個) ),所,所以是以是RRRR型指令,兩個操作數(shù)均在寄存器中。型指令,兩個操作數(shù)均在寄存器中。這種指令結(jié)構(gòu)常用于算術(shù)邏輯運算類指令。這種指令結(jié)構(gòu)常用于算術(shù)邏輯運算類指令。 O

20、POP-源寄存器源寄存器目的寄存器目的寄存器15 9 7 4 3 0000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011101111111111111111111111111111111111111000000011111111111111111111011101110A3A3A30000000111114 位操作碼位操作碼8 位操作碼位操作碼12 位操作碼位操作碼16 位操作碼位操作碼15條三地址指令條三地址指令14條二地址指令條二地址指令31條一地址指令條一地址指令16條零地址指令條零地址指令例:某例:某1616位機

21、單字長指令中有位機單字長指令中有1515條三地址指令、條三地址指令、1414條二地址指條二地址指令、令、3131條一地址指令、條一地址指令、1616條零地址指令,給出指令格式。條零地址指令,給出指令格式。111111111111111111111111A3A3A30000000111104.3 操作數(shù)類型操作數(shù)類型v一般的數(shù)據(jù)類型一般的數(shù)據(jù)類型 計算機內(nèi)部處理的數(shù)據(jù)類型通常分為四類:計算機內(nèi)部處理的數(shù)據(jù)類型通常分為四類:地址型數(shù)據(jù):數(shù)據(jù)地址地址型數(shù)據(jù):數(shù)據(jù)地址數(shù)值型數(shù)據(jù):定點、浮點、十進(jìn)制數(shù)等數(shù)值型數(shù)據(jù):定點、浮點、十進(jìn)制數(shù)等字符型數(shù)據(jù):字符串字符型數(shù)據(jù):字符串邏輯型數(shù)據(jù):位邏輯型數(shù)據(jù):位vP

22、entiumPentium數(shù)據(jù)類型數(shù)據(jù)類型vPowerPowerPCPC數(shù)據(jù)類型數(shù)據(jù)類型4.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式 存儲器既可以存放指令,也可以存放操作數(shù),如何確定下存儲器既可以存放指令,也可以存放操作數(shù),如何確定下一條欲執(zhí)行指令的指令地址,稱為一條欲執(zhí)行指令的指令地址,稱為指令尋址指令尋址,如何確定本條指,如何確定本條指令的操作數(shù)地址稱為令的操作數(shù)地址稱為操作數(shù)尋址操作數(shù)尋址。v 指令尋址指令尋址 順序?qū)ぶ讽樞驅(qū)ぶ?由于指令在內(nèi)存中是順序存放,當(dāng)執(zhí)行一段程序時,通常由于指令在內(nèi)存中是順序存放,當(dāng)執(zhí)行一段程序時,通常是一條指令接一條指令的順序執(zhí)行。是一條指令接一條指令的順

23、序執(zhí)行。 為了能夠指示下一條為了能夠指示下一條欲執(zhí)行指令的指令地址,欲執(zhí)行指令的指令地址,CPUCPU內(nèi)部有內(nèi)部有一個程序計數(shù)器一個程序計數(shù)器PC(PC(指令指針寄存器指令指針寄存器IP)IP),每執(zhí)行一條指令其值,每執(zhí)行一條指令其值自動加自動加1 1,指向下一條,指向下一條欲執(zhí)行指令的指令地址。這種程序順序欲執(zhí)行指令的指令地址。這種程序順序執(zhí)行的過程我們稱為指令的執(zhí)行的過程我們稱為指令的順序?qū)ぶ讽樞驅(qū)ぶ贰?跳躍尋址方式跳躍尋址方式 當(dāng)程序執(zhí)行循環(huán)指令或者轉(zhuǎn)移指令時,指令的尋址就采取當(dāng)程序執(zhí)行循環(huán)指令或者轉(zhuǎn)移指令時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址不是由程序計跳躍尋址

24、方式。所謂跳躍,是指下條指令的地址不是由程序計數(shù)器給出,而是由本條指令給出。程序跳躍后,按新的指令地數(shù)器給出,而是由本條指令給出。程序跳躍后,按新的指令地址開始順序執(zhí)行。址開始順序執(zhí)行。 LAD 2000ADD 2001DEC 1200JMP 7LAD 2000SUB 2001INCSTO 2500LAD 1100.0123456789PC+1指令地址尋址方式指令地址尋址方式指令地址指令地址指令指令順序?qū)ぶ讽樞驅(qū)ぶ?順序?qū)ぶ讽樞驅(qū)ぶ?順序?qū)ぶ讽樞驅(qū)ぶ?跳躍尋址跳躍尋址7順序?qū)ぶ讽樞驅(qū)ぶ?v操作數(shù)的尋址方式操作數(shù)的尋址方式 形式地址形式地址是指令字中的地址,是指令字中的地址,有效地址有效地址是操

25、作數(shù)的內(nèi)存地址,指令中是操作數(shù)的內(nèi)存地址,指令中的地址碼是由形式地址和尋址方式特征位等組合形成,因此一般來說,指的地址碼是由形式地址和尋址方式特征位等組合形成,因此一般來說,指令中所給出的形式地址并不是操作數(shù)的有效地址。因此,尋址過程就是把令中所給出的形式地址并不是操作數(shù)的有效地址。因此,尋址過程就是把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。 立即數(shù)尋址立即數(shù)尋址 指令執(zhí)行階段不訪存指令執(zhí)行階段不訪存 D 的位數(shù)限制了立即數(shù)的范圍的位數(shù)限制了立即數(shù)的范圍 可正可負(fù)可正可負(fù) ,補碼表示,補碼表示地址碼部分的形式地址地址碼部分的形式地址 D

26、就是操作數(shù),而不是就是操作數(shù),而不是操作數(shù)的地址操作數(shù)的地址 地址碼地址碼形式地址形式地址 D操作碼操作碼變址變址X X間址間址I I尋址特征尋址特征OP D尋址特征尋址特征立即數(shù)立即數(shù)直接內(nèi)存尋址直接內(nèi)存尋址 直接內(nèi)存尋址特點是:在指令格式的形式地址字段直接內(nèi)存尋址特點是:在指令格式的形式地址字段D D中直接指出操作數(shù)中直接指出操作數(shù)在內(nèi)存的有效地址在內(nèi)存的有效地址E E。由于操作數(shù)地址直接給出而不需要變換,稱為直接尋。由于操作數(shù)地址直接給出而不需要變換,稱為直接尋址方式。址方式。 采用直接尋址方式時,指令字中的形式地址采用直接尋址方式時,指令字中的形式地址D D就是操作數(shù)的有效地址就是操作

27、數(shù)的有效地址E E,既既E ED D。因此通常也把形式地址。因此通常也把形式地址D D又稱為直接地址。如果又稱為直接地址。如果S S表示操作數(shù),那表示操作數(shù),那么直接尋址的邏輯表達(dá)式為:么直接尋址的邏輯表達(dá)式為:S SEEDD操作數(shù)操作數(shù)主存主存尋址特征尋址特征OPDD 執(zhí)行階段訪問一次存儲器執(zhí)行階段訪問一次存儲器 D 的位數(shù)決定了該指令操作數(shù)的尋址范圍的位數(shù)決定了該指令操作數(shù)的尋址范圍 操作數(shù)的地址不易修改(必須修改操作數(shù)的地址不易修改(必須修改D)如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式:如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式: 尋址特征位尋址特征位I I0 0,表示直接

28、尋址,這時有效地址,表示直接尋址,這時有效地址E ED D;I I1 1,表示間,表示間接尋址,這時有效地址接尋址,這時有效地址E EDD。間接尋址間接尋址間接尋址的情況下,指令地址字段中的形式地址間接尋址的情況下,指令地址字段中的形式地址D D不是操作數(shù)的有效地不是操作數(shù)的有效地址,址,D D單元的內(nèi)容才是操作數(shù)的有效地址。單元的內(nèi)容才是操作數(shù)的有效地址。 形式地址形式地址 D操作碼操作碼 X IOPDDEA主存主存EA一次間址一次間址操作數(shù)操作數(shù)尋址特征尋址特征 執(zhí)行指令階段執(zhí)行指令階段 2 次訪存次訪存 可擴大尋址范圍可擴大尋址范圍 便于編制程序便于編制程序寄存器尋址方式寄存器尋址方式

29、當(dāng)操作數(shù)不放在內(nèi)存中,而是放在當(dāng)操作數(shù)不放在內(nèi)存中,而是放在CPUCPU的通用寄存器中時,的通用寄存器中時,可采用寄存器尋址方式。此時指令中給出的操作數(shù)地址不是內(nèi)可采用寄存器尋址方式。此時指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號,而是通用寄存器的編號。存的地址單元號,而是通用寄存器的編號。OPRi尋址特征尋址特征操作數(shù)操作數(shù)R0RiRn寄存器寄存器 執(zhí)行階段只訪問寄存器,執(zhí)行速度快執(zhí)行階段只訪問寄存器,執(zhí)行速度快 寄存器個數(shù)有限,可縮短指令字長寄存器個數(shù)有限,可縮短指令字長寄存器間接尋址方式寄存器間接尋址方式 寄存器間接尋址方式與寄存器尋址方式的區(qū)別在于:指令中的操作數(shù)寄存器間接尋址方式與寄

30、存器尋址方式的區(qū)別在于:指令中的操作數(shù)地址指示出的寄存器中內(nèi)容不是操作數(shù),而是操作數(shù)的有效地址,即寄存地址指示出的寄存器中內(nèi)容不是操作數(shù),而是操作數(shù)的有效地址,即寄存器中是操作數(shù)的有效地址。器中是操作數(shù)的有效地址。操作數(shù)操作數(shù)主存主存OPRi尋址特征尋址特征地址地址R0RiRn寄存器寄存器 有效地址在寄存器中,有效地址在寄存器中,執(zhí)行階段訪存執(zhí)行階段訪存 便于編制循環(huán)程序便于編制循環(huán)程序1 1、相對尋址方式、相對尋址方式相對尋址是把程序計數(shù)器相對尋址是把程序計數(shù)器PCPC的內(nèi)容加上指令格式中的形式地址的內(nèi)容加上指令格式中的形式地址D D而形成而形成操作數(shù)的有效地址。程序計數(shù)器的內(nèi)容就是當(dāng)前指令

31、的地址操作數(shù)的有效地址。程序計數(shù)器的內(nèi)容就是當(dāng)前指令的地址. .形式地址形式地址D D通通常稱為偏移量。常稱為偏移量?!跋鄬ο鄬Α睂ぶ?,就是相對于當(dāng)前的指令地址進(jìn)行浮動。尋址,就是相對于當(dāng)前的指令地址進(jìn)行浮動。 程序員無須用指令的絕對地址編程程序員無須用指令的絕對地址編程操作數(shù)操作數(shù)尋址特征尋址特征ALUOPD相對距離相對距離 D1000PC主存主存1000DOP D 的位數(shù)決定操作數(shù)的尋址范圍的位數(shù)決定操作數(shù)的尋址范圍 廣泛用于轉(zhuǎn)移指令廣泛用于轉(zhuǎn)移指令偏移尋址偏移尋址 2 2、基址尋址方式基址尋址方式 基址尋址方式是將基址尋址方式是將CPUCPU中基址寄存器的內(nèi)容加上指令格式中基址寄存器的內(nèi)

32、容加上指令格式中的形式地址而形成操作數(shù)的有效地址。中的形式地址而形成操作數(shù)的有效地址。 它的優(yōu)點是可以擴大尋址能力。同形式地址相比,基址寄存器的位它的優(yōu)點是可以擴大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址。數(shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址。在程序的執(zhí)行在程序的執(zhí)行過程中過程中BRBR內(nèi)容不變,由操作系統(tǒng)指定,形式地址內(nèi)容不變,由操作系統(tǒng)指定,形式地址D D可變??勺?。OPD操作數(shù)操作數(shù)主存主存尋址特征尋址特征ALUBR3 3、變址尋址方式變址尋址方式 變址尋址方式與基址尋址方式計算有效地址的方法十分相變址尋址方式與基址尋址方式計算

33、有效地址的方法十分相似,它把似,它把CPUCPU中某個變址寄存器的內(nèi)容與形式地址中某個變址寄存器的內(nèi)容與形式地址D D相加來形成相加來形成操作數(shù)有效地址。但使用變址尋址方式的目的不在于擴大尋址操作數(shù)有效地址。但使用變址尋址方式的目的不在于擴大尋址空間,而在于實現(xiàn)程序塊的規(guī)律性變化??臻g,而在于實現(xiàn)程序塊的規(guī)律性變化。OPD操作數(shù)操作數(shù)主存主存尋址特征尋址特征ALUIX 便于處理數(shù)組問題便于處理數(shù)組問題 IX 的內(nèi)容由用戶給定的內(nèi)容由用戶給定 在程序的執(zhí)行過程中在程序的執(zhí)行過程中 IX 內(nèi)容內(nèi)容可變,形式地址可變,形式地址 D 不變不變堆棧尋址方式堆棧尋址方式 堆棧是一組能夠存儲和取出數(shù)據(jù)的暫時

34、存儲單元,與存儲堆棧是一組能夠存儲和取出數(shù)據(jù)的暫時存儲單元,與存儲器的基本功能一致,但堆棧在數(shù)據(jù)的存取方法和尋址方法上與器的基本功能一致,但堆棧在數(shù)據(jù)的存取方法和尋址方法上與存儲器不同,存儲器一般采用存儲器不同,存儲器一般采用隨機存儲方法隨機存儲方法,而堆棧采用,而堆棧采用先進(jìn)先進(jìn)后出的存儲方法后出的存儲方法,根據(jù)構(gòu)成堆棧的基本單元的不同,計算機中,根據(jù)構(gòu)成堆棧的基本單元的不同,計算機中的堆棧分為兩類:的堆棧分為兩類: 串連堆棧:構(gòu)成堆棧的基本單元是串連堆棧:構(gòu)成堆棧的基本單元是CPUCPU內(nèi)的寄存器內(nèi)的寄存器 存儲器堆棧:構(gòu)成堆棧的基本單元是主存單元存儲器堆棧:構(gòu)成堆棧的基本單元是主存單元1

35、)1)串聯(lián)堆棧串聯(lián)堆棧 一些計算機的一些計算機的CPU中有一組專門的寄存器,有中有一組專門的寄存器,有1616個或者更個或者更多,其中每一個寄存器能保存一個字的數(shù)據(jù),由專用的寄存器多,其中每一個寄存器能保存一個字的數(shù)據(jù),由專用的寄存器組構(gòu)成堆棧的存儲空間,我們稱為組構(gòu)成堆棧的存儲空間,我們稱為串聯(lián)堆棧串聯(lián)堆棧,專專用用寄寄存存器器組組堆??臻g堆??臻g某通用寄存器某通用寄存器1212入入棧棧過過程程45451267451267專專用用寄寄存存器器組組堆??臻g堆棧空間某通用寄存器某通用寄存器121245451267451267出出棧棧過過程程串聯(lián)堆棧存在一些限制串聯(lián)堆棧存在一些限制:l寄存器的數(shù)目

36、一般是有限的。如堆棧有寄存器的數(shù)目一般是有限的。如堆棧有6個寄存器,那么把多于個寄存器,那么把多于6個的數(shù)據(jù)個的數(shù)據(jù)壓入堆棧時壓入堆棧時,“老老”的數(shù)據(jù)就從棧底壓出并被丟失。的數(shù)據(jù)就從棧底壓出并被丟失。l是堆棧的讀出是破壞性的。當(dāng)從堆棧取出一個數(shù)時,它就不能再在堆棧中是堆棧的讀出是破壞性的。當(dāng)從堆棧取出一個數(shù)時,它就不能再在堆棧中存在。存在。 2)2)存儲器堆棧存儲器堆棧 在計算機中利用一部分主存儲器來作為堆棧空間,稱為在計算機中利用一部分主存儲器來作為堆??臻g,稱為存存儲器堆棧儲器堆棧。在存儲器類型的堆棧中需要一個堆棧指示器。在存儲器類型的堆棧中需要一個堆棧指示器SPSP,它,它是是CPU中

37、一個專用的寄存器。堆棧指示器中一個專用的寄存器。堆棧指示器SPSP指定的存儲器單元指定的存儲器單元就是堆棧的棧頂。就是堆棧的棧頂。 棧底棧底棧頂棧頂0000H0000HFFFFHFFFFH4141堆棧指針堆棧指針SPSPFFFFHFFFFH棧頂棧頂2323FFFEHFFFEH5757FFFDHFFFDHFFFCHFFFCH棧頂棧頂在內(nèi)存中開辟一段存儲單元在內(nèi)存中開辟一段存儲單元作為堆棧。設(shè)有通用寄存器作為堆棧。設(shè)有通用寄存器A A、B B、C C分別有數(shù)據(jù)分別有數(shù)據(jù)2323、5757、4141。執(zhí)行下面的入棧和出棧操作執(zhí)行下面的入棧和出棧操作指令:指令: PUSH APUSH A PUSH B

38、 PUSH B PUSH C PUSH C POP C POP C堆棧指針和堆棧變化如圖堆棧指針和堆棧變化如圖存儲器堆棧的特點:存儲器堆棧的特點:l存儲器堆棧是一個由高地址向低地址延伸的空間。存儲器堆棧是一個由高地址向低地址延伸的空間。l存儲器堆棧的棧頂由堆棧指針存儲器堆棧的棧頂由堆棧指針SPSP指示,如果用指示,如果用AA表示通用寄表示通用寄存器存器A A的內(nèi)容,的內(nèi)容,SPSP表示堆棧指示器,表示堆棧指示器,MspMsp表示堆棧指示的存儲器表示堆棧指示的存儲器棧頂單元棧頂單元, ,入棧操作和出棧操作可以表示為:入棧操作和出棧操作可以表示為: 入棧:入棧:AMsp AMsp ,SPSP1SP

39、1SP 出棧:出棧:SPSP1SP1SP,MspA MspA 存儲器堆棧的優(yōu)點:存儲器堆棧的優(yōu)點:l堆棧能夠具有程序員要求的任意長度;堆棧能夠具有程序員要求的任意長度;l存儲器堆棧的數(shù)目由程序員自己決定;存儲器堆棧的數(shù)目由程序員自己決定;l可以用對存儲器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn)行可以用對存儲器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn)行尋址。尋址。v尋址方式舉例尋址方式舉例例:一種二地址例:一種二地址RSRS型指令的結(jié)構(gòu)如下所示:型指令的結(jié)構(gòu)如下所示: 形式地址形式地址 D操作碼操作碼 X X I I寄存器寄存器6位位 4位位 1位位 2位位 16位位其中其中I I為間接尋址標(biāo)志位,為間

40、接尋址標(biāo)志位,X X為尋址模式字段,為尋址模式字段,D D為形式地址。通過為形式地址。通過I I,X X,D D的組合,可構(gòu)成下表所示的尋址方式。的組合,可構(gòu)成下表所示的尋址方式。 請寫出六種尋址方式的名稱。請寫出六種尋址方式的名稱。尋址方式尋址方式I IX X有效地址有效地址說明說明1 10 00000E=DE=D2 20 00101E=(PC)+DE=(PC)+DPCPC為程序計數(shù)器為程序計數(shù)器3 30 01010E=(IX)+DE=(IX)+DIXIX為變址寄存器為變址寄存器4 41 11111E=(R3)E=(R3)5 51 10000E=(D)E=(D)6 60 01111E=(BR

41、)+DE=(BR)+DBRBR為基址寄存器為基址寄存器直接內(nèi)存尋址直接內(nèi)存尋址相對尋址相對尋址變址尋址變址尋址寄存器間接尋址寄存器間接尋址內(nèi)存間接尋址內(nèi)存間接尋址基址尋址基址尋址例:某微機的指令格式如下所示:例:某微機的指令格式如下所示: 操作碼操作碼XDD:位移量:位移量X:尋址特征位:尋址特征位 X=00:直接尋址;:直接尋址; X=01:用基址寄存器:用基址寄存器BR進(jìn)行變址;進(jìn)行變址; X=10:用變址寄存器:用變址寄存器IX進(jìn)行變址;進(jìn)行變址; X=11:相對尋址:相對尋址設(shè)(設(shè)(PC)=1234 H,(,(BR)=0037H,(,(IX)=1122H,請確定下列指令,請確定下列指令

42、的有效地址。的有效地址。4420H 2244H 1322H 3521H1 1)X=00 , D=20H ,X=00 , D=20H ,有效地址有效地址E=20HE=20H2) X=10 , D=44H ,2) X=10 , D=44H ,有效地址有效地址E=1122H+44H=1166HE=1122H+44H=1166H3) X=11 , D=22H ,3) X=11 , D=22H ,有效地址有效地址E=1234H+22H=1256HE=1234H+22H=1256H4) X=01 , D=21H ,4) X=01 , D=21H ,有效地址有效地址E=0037H+21H=0058HE=00

43、37H+21H=0058H15 10 9 8 7 015 10 9 8 7 0例:某例:某1616位機器所使用的指令格式和尋址方式如下所示,該機有兩個位機器所使用的指令格式和尋址方式如下所示,該機有兩個2020位位基址寄存器,四個基址寄存器,四個1616位變址寄存器,十六個位變址寄存器,十六個1616位通用寄存器,指令匯編格位通用寄存器,指令匯編格式中的式中的S S和和D D都是指通用寄存器,都是指通用寄存器,M M指主存中的一個單元。三種指令的操作碼指主存中的一個單元。三種指令的操作碼分別是分別是MOVMOV為為0AH 0AH ,STOSTO為為1BH 1BH ,LADLAD為為3CH3CH

44、。說明:說明:MOVMOV是傳送指令,是傳送指令,STOSTO為寫數(shù)指令,為寫數(shù)指令,LADLAD為讀數(shù)指令。為讀數(shù)指令。(1)分析三種指令的指令格式與尋址方式特點)分析三種指令的指令格式與尋址方式特點。該指令是單字長二地址指令,是該指令是單字長二地址指令,是寄存器寄存器寄存器寄存器型,源寄存器型,源寄存器S S由由0 03 3位指位指定,目標(biāo)寄存器定,目標(biāo)寄存器D D由由4 47 7位指定。位指定。該指令是雙字長二地址指令,是該指令是雙字長二地址指令,是寄存器寄存器存儲器存儲器型,源寄存器型,源寄存器S S由由4 47 7位指位指定定,存儲器存儲器M M由由采用采用0 03 3位指定的變址寄

45、存器加位移量的位指定的變址寄存器加位移量的變址方式變址方式得到或者得到或者由由89位指定的基址寄存器加位移量的位指定的基址寄存器加位移量的基址尋址基址尋址得到。得到。該指令是雙字長二地址指令,該指令是雙字長二地址指令,寄存器寄存器存儲器存儲器型,其中目標(biāo)寄存器型,其中目標(biāo)寄存器D D由由4 47 7位指定,存儲器由指令中給出的位指定,存儲器由指令中給出的2020位地址由直接內(nèi)存尋址決定。位地址由直接內(nèi)存尋址決定。(2 2)CPUCPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎?

46、種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎? CPUCPU完成第一種指令所花時間最短,因為是完成第一種指令所花時間最短,因為是RRRR型指令,不需要訪問存儲器型指令,不需要訪問存儲器 CPUCPU完成第二種指令所花時間最長,因為是完成第二種指令所花時間最長,因為是RSRS型指令需要訪問存儲器,同型指令需要訪問存儲器,同時要進(jìn)行尋址方式的變換運算,基址寄存器的內(nèi)容加位移量或變址寄存器時要進(jìn)行尋址方式的變換運算,基址寄存器的內(nèi)容加位移量或變址寄存器內(nèi)容加位移量,這也需要時間。內(nèi)容加位移量,這也需要時間。 第二種指令的執(zhí)行時間不會等于第三種指令,因為第三種指令也訪問存儲器,但第二種指令的執(zhí)行時

47、間不會等于第三種指令,因為第三種指令也訪問存儲器,但節(jié)省了求有效地址運算的時間開銷。節(jié)省了求有效地址運算的時間開銷。(3 3)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?不正確,如何改正才能成為合法指令? (F0F1) (F0F1)H H(3CD2)(3CD2)H H根據(jù)已知條件:根據(jù)已知條件: MOVMOV(OPOP)0AH0AH00 101000 1010 ST0 ST0(OPOP)1BH1BH01 101101 1011 LAD LAD(OPOP)3CH3CH11 110011

48、 11001111 0000 1111 0001 0011 1100 1101 00101111 0000 1111 0001 0011 1100 1101 0010111100 111100 0000 11111111 0001 0011 1100 1101 00100001 0011 1100 1101 0010 2856H2856H0010 1000 0101 01100010 1000 0101 0110編碼正確,其含義是把主存編碼正確,其含義是把主存(13CD2)H 地址單元的內(nèi)容取至地址單元的內(nèi)容取至15號寄存器號寄存器。001010001010 0000 0101 0101 01100110編碼正確,含義是把編碼正確,含義是把6號源寄存器的內(nèi)容傳送至號源寄存器的內(nèi)容傳送至5號目標(biāo)寄存器。號目標(biāo)寄存器。 6FD6H 6FD6H0110 1111 1101 01100110 1111 1101 0110011011011011 1111 1101 1101 01100110編碼錯誤,可改正為編碼錯誤,可改正為28D6

溫馨提示

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

評論

0/150

提交評論