




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第4 4章章 指令系統指令系統本章內容:本章內容:v指令系統的發展與性能要求指令系統的發展與性能要求 v指令格式指令格式v指令和數據的尋址方式指令和數據的尋址方式 v堆棧尋址方式堆棧尋址方式v典型指令典型指令 4.1 指令系統的發展和性能要求指令系統的發展和性能要求v什么是指令系統什么是指令系統 一臺計算機分為兩個部分,控制部件和執行部件,控制一臺計算機分為兩個部分,控制部件和執行部件,控制器就是控制部件,而運算器,存儲器,外圍設備對控制器來器就是控制部件,而運算器,存儲器,外圍設備對控制器來說就是執行部件。說就是執行部件。 控制器通過控制總線向執行部件發送的各種控制命令稱控制器通過控制總線
2、向執行部件發送的各種控制命令稱為為微命令微命令,執行部件接受命令后所進行的操作稱為,執行部件接受命令后所進行的操作稱為微操作。微操作。微指令微指令:一組實現一定操作功能的微命令的組合,屬于硬件:一組實現一定操作功能的微命令的組合,屬于硬件機器指令(指令)機器指令(指令):一組可以完成一個獨立的算術運算或邏輯運算的微:一組可以完成一個獨立的算術運算或邏輯運算的微指令的組合,與硬件緊密關聯。指令的組合,與硬件緊密關聯。 宏指令宏指令:由若干條機器指令組成的軟件指令,屬于軟件;:由若干條機器指令組成的軟件指令,屬于軟件;指令系統指令系統:一臺計算機中所有機器指令的集合,它是表征一臺計算機性:一臺計算
3、機中所有機器指令的集合,它是表征一臺計算機性能的重要因素。能的重要因素。v計算機指令系統的發展過程計算機指令系統的發展過程50年代:年代:指令系統只有定點加減、邏輯運算、數據傳送、轉移等十幾至指令系統只有定點加減、邏輯運算、數據傳送、轉移等十幾至幾十條指令。幾十條指令。 60年代后期:年代后期:增加了乘除運算、浮點運算、十進制運算、字符串處理等增加了乘除運算、浮點運算、十進制運算、字符串處理等指令,指令數目多達一二百條,尋址方式也趨多樣化。指令,指令數目多達一二百條,尋址方式也趨多樣化。60年代后期開始年代后期開始出現系列計算機出現系列計算機(指基本指令系統相同、基本體系結構相同的一系列計算指
4、基本指令系統相同、基本體系結構相同的一系列計算機機)一個系列往往有多種型號,它們在結構和性能上有所差異。同一系列一個系列往往有多種型號,它們在結構和性能上有所差異。同一系列的各機種有共同的指令集而且新推出的機種指令系統一定包含所有舊機的各機種有共同的指令集而且新推出的機種指令系統一定包含所有舊機種的全部指令種的全部指令,舊機種上運行的各種軟件可以不加任何修改便可在新機種舊機種上運行的各種軟件可以不加任何修改便可在新機種上運行,大大減少了軟件開發費用。上運行,大大減少了軟件開發費用。 70年代末期:年代末期:大多數計算機的指令系統多達幾百條。我們稱這些計算機大多數計算機的指令系統多達幾百條。我們
5、稱這些計算機為為復雜指令系統計算機復雜指令系統計算機(CISC)。但是如此龐大的指令系統難以保證其正。但是如此龐大的指令系統難以保證其正確性,不易調試維護,造成硬件資源浪費。為此人們又提出了便于確性,不易調試維護,造成硬件資源浪費。為此人們又提出了便于VLSIVLSI技術實現的技術實現的精簡指令系統計算機(精簡指令系統計算機(RISC)。 v指令系統性能的要求指令系統性能的要求 指令系統的性能決定了計算機的基本功能,它的設計直接指令系統的性能決定了計算機的基本功能,它的設計直接關系到計算機的硬件結構和用戶的需要。關系到計算機的硬件結構和用戶的需要。一個完善的指令系統應滿足如下四方面的要求:一個
6、完善的指令系統應滿足如下四方面的要求: 完備性完備性 用匯編語言編寫各種程序時,指令系統直接提供用匯編語言編寫各種程序時,指令系統直接提供的指令足夠使用,而不必用軟件來實現。的指令足夠使用,而不必用軟件來實現。 有效性有效性利用該指令系統所編寫的程序能夠在計算機上高利用該指令系統所編寫的程序能夠在計算機上高效率運行,主要表現在程序占據存儲空間小、執行速度快。效率運行,主要表現在程序占據存儲空間小、執行速度快。 規整性規整性規整性包括指令系統的對稱性、勻齊性、指令格規整性包括指令系統的對稱性、勻齊性、指令格式和數據格式的一致性。式和數據格式的一致性。 兼容性兼容性系列機各機種之間具有相同的基本結
7、構和共同的系列機各機種之間具有相同的基本結構和共同的基本指令集,低檔機上運行的軟件可以在高檔機上運行,即做基本指令集,低檔機上運行的軟件可以在高檔機上運行,即做到到“向下兼容向下兼容” 。 4.2 指令格式指令格式 結果結果y y存放在存放在1313單元單元y y 數據數據x x存放在存放在1212單元單元x x 數據數據c c存放在存放在1111單元單元c c 數據數據b b存放在存放在1010單元單元b b 數據數據a a存放在存放在9 9單元單元a a運算完畢運算完畢, ,機器暫停工作機器暫停工作 停止停止將結果打印出來將結果打印出來 打印打印運算器結果送運算器結果送1313號單元號單元
8、 存數存數 1313完成完成ax+b-c,ax+b-c,結果保留在運算器上結果保留在運算器上 減法減法 1111完成完成ax+b,ax+b,結果保留在運算器上結果保留在運算器上 加法加法 1010完成完成a a* *x,x,結果保留在運算器上結果保留在運算器上 乘法乘法 1212存儲器存儲器9 9號地址的數送運算器號地址的數送運算器 取數取數 9 9 說說 明明 指令指令13131212111110109 9數據地址數據地址7 76 65 54 43 32 21 1指令地址指令地址數據數據操作碼操作碼地址碼地址碼引例:計算引例:計算y=ax+b-cy=ax+b-c這個題目這個題目v指令格式指令
9、格式 指令格式指用機器字表示的指令的結構形式,由兩部分指令格式指用機器字表示的指令的結構形式,由兩部分組成,即進行何種操作和從存儲器的那個單元取數;前者稱組成,即進行何種操作和從存儲器的那個單元取數;前者稱為操作碼,后者稱為地址碼。所以指令的一般格式為:為操作碼,后者稱為地址碼。所以指令的一般格式為: 操作碼字段操作碼字段 地址碼字段地址碼字段操作碼操作碼: :指出指令所進行的操作指出指令所進行的操作, ,如加、減、乘、除、取數如加、減、乘、除、取數以及存數等等。以及存數等等。地址碼地址碼: :表示參加運算的數據應從存儲器的哪個單元取表示參加運算的數據應從存儲器的哪個單元取, ,運運算的結果應
10、存到哪個單元。算的結果應存到哪個單元。n個機器字個機器字v指令字長度指令字長度 指令字長度:指令字長度:一個指令字中包含二進制代碼的位數。一個指令字中包含二進制代碼的位數。機器字長:機器字長:計算機能直接處理的二進制數據的位數,它決定了計算機能直接處理的二進制數據的位數,它決定了計算機的運算精度。計算機的運算精度。單字長指令:指令字長等于機器字長度的指令。單字長指令:指令字長等于機器字長度的指令。半字長指令:指令字長等于半個機器字長度的指令。半字長指令:指令字長等于半個機器字長度的指令。雙字長指令:指令字長等于兩個機器字長度的指令。雙字長指令:指令字長等于兩個機器字長度的指令。多字長指令:指令
11、字長等于幾個機器字長度的指令。多字長指令:指令字長等于幾個機器字長度的指令。 使用多字長指令,目的在于提供使用多字長指令,目的在于提供足夠的地址位足夠的地址位來解決訪問來解決訪問內存任何單元的尋址問題。其主要缺點是必須兩內存任何單元的尋址問題。其主要缺點是必須兩次或多次訪次或多次訪問內存問內存才能取出一整條指令,降低了的運算速度,又占用了才能取出一整條指令,降低了的運算速度,又占用了更多的存儲空間。更多的存儲空間。指令指令操作碼操作碼加法加法001減法減法010乘法乘法011除法除法100取數取數101存數存數110打印打印111停機停機000v操作碼操作碼 指令的操作碼部分可以變成二進制代碼
12、。我們用指令的操作碼部分可以變成二進制代碼。我們用3位二位二進制數表示八種指令的操作碼(如下表)。進制數表示八種指令的操作碼(如下表)。 組成操作碼的字段位數一般取決于計算機指令系統復雜組成操作碼的字段位數一般取決于計算機指令系統復雜程度。如果有程度。如果有32條指令就要有條指令就要有5位操作碼。一般說來,包含位操作碼。一般說來,包含n位的操作碼最多能夠表示位的操作碼最多能夠表示2n條指令條指令按操作碼的位數是否固定:按操作碼的位數是否固定:固定長度的操作碼:所有指令長固定長度的操作碼:所有指令長度均相同。特點是控制簡單,速度度均相同。特點是控制簡單,速度快,適用于指令條數不多的場合。快,適用
13、于指令條數不多的場合。可變長度的操作碼:頻繁使用的可變長度的操作碼:頻繁使用的指令用位數較少的操作碼,不常使指令用位數較少的操作碼,不常使用的指令可利用操作碼擴展技術進用的指令可利用操作碼擴展技術進行擴展。行擴展。v指令助記符指令助記符 由于硬件只能識別由于硬件只能識別1 1和和0 0,并且為了便于存儲,所以采用二,并且為了便于存儲,所以采用二進制操作碼是十分必要的,但是我們用二進制來書寫程序卻非進制操作碼是十分必要的,但是我們用二進制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用常麻煩。為了便于書寫和閱讀程序,每條指令通常用3 3個或個或4 4個個英文縮寫字母來表示。這種縮寫碼
14、叫做指令助記符。英文縮寫字母來表示。這種縮寫碼叫做指令助記符。 指令指令操作碼操作碼指令助記符指令助記符加法加法001ADDADD減法減法010SUBSUB傳送傳送000MOVMOV乘法乘法011MULMUL除法除法100DIVDIV跳轉跳轉101JMPJMP存數存數110STOSTO取數取數111LADLADv地址碼地址碼 根據一條指令中有幾個操作數地址,可將該指令稱為幾根據一條指令中有幾個操作數地址,可將該指令稱為幾操作數指令或幾地址指令。一般的操作數有操作數指令或幾地址指令。一般的操作數有被操作數被操作數、操作操作數數及及操作結果操作結果這三種數,因而就形成了三地址指令格式。這三種數,因
15、而就形成了三地址指令格式。三地址指令三地址指令8 8 8 8 OP A1 A2 A3(A1) OP (A2) A3 其中操作數其中操作數A1、A2、A3可以是內存單元的地址,也可以可以是內存單元的地址,也可以是運算器中通用寄存器的地址,如果三地址指令中是運算器中通用寄存器的地址,如果三地址指令中A A1 1、A A2、A A3都是內存單元,則指令需要都是內存單元,則指令需要4次訪問存儲器,存儲器的尋址范次訪問存儲器,存儲器的尋址范圍圍28 = 256。為了提高指令執行的速度和擴大尋址范圍出現了。為了提高指令執行的速度和擴大尋址范圍出現了兩地址指令和一地址指令。兩地址指令和一地址指令。二地址指令
16、二地址指令 二地址指令常稱為雙操作數指令,它的兩個地址碼字段分二地址指令常稱為雙操作數指令,它的兩個地址碼字段分別指明參與操作的兩個數在內存中或運算器中通用寄存器的地別指明參與操作的兩個數在內存中或運算器中通用寄存器的地址,址,A1A1作存放操作結果的地址作存放操作結果的地址, ,稱為稱為目的操作數目的操作數(D)(D),A2A2稱為源稱為源操作數操作數(S)(S)。 OP A1 A28 12 12(A1) OP (A2) A1尋址范圍尋址范圍 212 = 4 K二地址指令格式中,從操作數的物理位置來說,又可歸結為三種類型。二地址指令格式中,從操作數的物理位置來說,又可歸結為三種類型。 存儲器
17、存儲器- -存儲器(存儲器(SSSS)型指令)型指令:操作數都放在內存里,因此機器執行這種指令操作數都放在內存里,因此機器執行這種指令需要多次訪問內存。需要多次訪問內存。 寄存器寄存器- -寄存器(寄存器(RRRR)型指令)型指令:操作數都在寄存器中。機器執行寄存器操作數都在寄存器中。機器執行寄存器- -寄存器寄存器型指令的速度很快,因為執行這類指令,不需要訪問內存。型指令的速度很快,因為執行這類指令,不需要訪問內存。 寄存器寄存器- -存儲器(存儲器(RSRS)型指令)型指令:執行此類指令時,既要訪問內存單元,又要訪執行此類指令時,既要訪問內存單元,又要訪問寄存器。問寄存器。一地址指令一地址
18、指令 一地址指令常稱為單操作數指令。通常這種指令以運算器一地址指令常稱為單操作數指令。通常這種指令以運算器中累加寄存器中累加寄存器ACAC中的數據為被操作數,指令字的地址碼字段所中的數據為被操作數,指令字的地址碼字段所指明的數為操作數,操作結果又放回累加寄存器指明的數為操作數,操作結果又放回累加寄存器ACAC中。中。 零地址指令零地址指令 零地址指令的指令字中只有操作碼,而沒有地址碼。例如零地址指令的指令字中只有操作碼,而沒有地址碼。例如停機指令就不需要地址碼停機指令就不需要地址碼 。因為停機指令不需要操作數。因為停機指令不需要操作數。OP A18 24 (AC) OP (A1) AC尋址范圍
19、尋址范圍 224 = 16 M OP v指令格式舉例指令格式舉例例:某例:某1616位機指令格式如下所示,其中位機指令格式如下所示,其中OPOP為操作碼,試分析指為操作碼,試分析指令格式的特點。令格式的特點。 單字長二地址指令。單字長二地址指令。操作碼字段操作碼字段OPOP可以指定可以指定128128條指令。條指令。 源寄存器和目標寄存器都是通用寄存器源寄存器和目標寄存器都是通用寄存器( (可分別指定可分別指定1616個個) ),所,所以是以是RRRR型指令,兩個操作數均在寄存器中。型指令,兩個操作數均在寄存器中。這種指令結構常用于算術邏輯運算類指令。這種指令結構常用于算術邏輯運算類指令。 O
20、POP-源寄存器源寄存器目的寄存器目的寄存器15 9 7 4 3 0000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011101111111111111111111111111111111111111000000011111111111111111111011101110A3A3A30000000111114 位操作碼位操作碼8 位操作碼位操作碼12 位操作碼位操作碼16 位操作碼位操作碼15條三地址指令條三地址指令14條二地址指令條二地址指令31條一地址指令條一地址指令16條零地址指令條零地址指令例:某例:某1616位機
21、單字長指令中有位機單字長指令中有1515條三地址指令、條三地址指令、1414條二地址指條二地址指令、令、3131條一地址指令、條一地址指令、1616條零地址指令,給出指令格式。條零地址指令,給出指令格式。111111111111111111111111A3A3A30000000111104.3 操作數類型操作數類型v一般的數據類型一般的數據類型 計算機內部處理的數據類型通常分為四類:計算機內部處理的數據類型通常分為四類:地址型數據:數據地址地址型數據:數據地址數值型數據:定點、浮點、十進制數等數值型數據:定點、浮點、十進制數等字符型數據:字符串字符型數據:字符串邏輯型數據:位邏輯型數據:位vP
22、entiumPentium數據類型數據類型vPowerPowerPCPC數據類型數據類型4.4 指令和數據的尋址方式指令和數據的尋址方式 存儲器既可以存放指令,也可以存放操作數,如何確定下存儲器既可以存放指令,也可以存放操作數,如何確定下一條欲執行指令的指令地址,稱為一條欲執行指令的指令地址,稱為指令尋址指令尋址,如何確定本條指,如何確定本條指令的操作數地址稱為令的操作數地址稱為操作數尋址操作數尋址。v 指令尋址指令尋址 順序尋址順序尋址 由于指令在內存中是順序存放,當執行一段程序時,通常由于指令在內存中是順序存放,當執行一段程序時,通常是一條指令接一條指令的順序執行。是一條指令接一條指令的順
23、序執行。 為了能夠指示下一條為了能夠指示下一條欲執行指令的指令地址,欲執行指令的指令地址,CPUCPU內部有內部有一個程序計數器一個程序計數器PC(PC(指令指針寄存器指令指針寄存器IP)IP),每執行一條指令其值,每執行一條指令其值自動加自動加1 1,指向下一條,指向下一條欲執行指令的指令地址。這種程序順序欲執行指令的指令地址。這種程序順序執行的過程我們稱為指令的執行的過程我們稱為指令的順序尋址順序尋址。 跳躍尋址方式跳躍尋址方式 當程序執行循環指令或者轉移指令時,指令的尋址就采取當程序執行循環指令或者轉移指令時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址不是由程序計跳躍尋址
24、方式。所謂跳躍,是指下條指令的地址不是由程序計數器給出,而是由本條指令給出。程序跳躍后,按新的指令地數器給出,而是由本條指令給出。程序跳躍后,按新的指令地址開始順序執行。址開始順序執行。 LAD 2000ADD 2001DEC 1200JMP 7LAD 2000SUB 2001INCSTO 2500LAD 1100.0123456789PC+1指令地址尋址方式指令地址尋址方式指令地址指令地址指令指令順序尋址順序尋址1順序尋址順序尋址2順序尋址順序尋址3跳躍尋址跳躍尋址7順序尋址順序尋址8v操作數的尋址方式操作數的尋址方式 形式地址形式地址是指令字中的地址,是指令字中的地址,有效地址有效地址是操
25、作數的內存地址,指令中是操作數的內存地址,指令中的地址碼是由形式地址和尋址方式特征位等組合形成,因此一般來說,指的地址碼是由形式地址和尋址方式特征位等組合形成,因此一般來說,指令中所給出的形式地址并不是操作數的有效地址。因此,尋址過程就是把令中所給出的形式地址并不是操作數的有效地址。因此,尋址過程就是把操作數的形式地址,變換為操作數的有效地址的過程。操作數的形式地址,變換為操作數的有效地址的過程。 立即數尋址立即數尋址 指令執行階段不訪存指令執行階段不訪存 D 的位數限制了立即數的范圍的位數限制了立即數的范圍 可正可負可正可負 ,補碼表示,補碼表示地址碼部分的形式地址地址碼部分的形式地址 D
26、就是操作數,而不是就是操作數,而不是操作數的地址操作數的地址 地址碼地址碼形式地址形式地址 D操作碼操作碼變址變址X X間址間址I I尋址特征尋址特征OP D尋址特征尋址特征立即數立即數直接內存尋址直接內存尋址 直接內存尋址特點是:在指令格式的形式地址字段直接內存尋址特點是:在指令格式的形式地址字段D D中直接指出操作數中直接指出操作數在內存的有效地址在內存的有效地址E E。由于操作數地址直接給出而不需要變換,稱為直接尋。由于操作數地址直接給出而不需要變換,稱為直接尋址方式。址方式。 采用直接尋址方式時,指令字中的形式地址采用直接尋址方式時,指令字中的形式地址D D就是操作數的有效地址就是操作
27、數的有效地址E E,既既E ED D。因此通常也把形式地址。因此通常也把形式地址D D又稱為直接地址。如果又稱為直接地址。如果S S表示操作數,那表示操作數,那么直接尋址的邏輯表達式為:么直接尋址的邏輯表達式為:S SEEDD操作數操作數主存主存尋址特征尋址特征OPDD 執行階段訪問一次存儲器執行階段訪問一次存儲器 D 的位數決定了該指令操作數的尋址范圍的位數決定了該指令操作數的尋址范圍 操作數的地址不易修改(必須修改操作數的地址不易修改(必須修改D)如果把直接尋址和間接尋址結合起來,指令有如下形式:如果把直接尋址和間接尋址結合起來,指令有如下形式: 尋址特征位尋址特征位I I0 0,表示直接
28、尋址,這時有效地址,表示直接尋址,這時有效地址E ED D;I I1 1,表示間,表示間接尋址,這時有效地址接尋址,這時有效地址E EDD。間接尋址間接尋址間接尋址的情況下,指令地址字段中的形式地址間接尋址的情況下,指令地址字段中的形式地址D D不是操作數的有效地不是操作數的有效地址,址,D D單元的內容才是操作數的有效地址。單元的內容才是操作數的有效地址。 形式地址形式地址 D操作碼操作碼 X IOPDDEA主存主存EA一次間址一次間址操作數操作數尋址特征尋址特征 執行指令階段執行指令階段 2 次訪存次訪存 可擴大尋址范圍可擴大尋址范圍 便于編制程序便于編制程序寄存器尋址方式寄存器尋址方式
29、當操作數不放在內存中,而是放在當操作數不放在內存中,而是放在CPUCPU的通用寄存器中時,的通用寄存器中時,可采用寄存器尋址方式。此時指令中給出的操作數地址不是內可采用寄存器尋址方式。此時指令中給出的操作數地址不是內存的地址單元號,而是通用寄存器的編號。存的地址單元號,而是通用寄存器的編號。OPRi尋址特征尋址特征操作數操作數R0RiRn寄存器寄存器 執行階段只訪問寄存器,執行速度快執行階段只訪問寄存器,執行速度快 寄存器個數有限,可縮短指令字長寄存器個數有限,可縮短指令字長寄存器間接尋址方式寄存器間接尋址方式 寄存器間接尋址方式與寄存器尋址方式的區別在于:指令中的操作數寄存器間接尋址方式與寄
30、存器尋址方式的區別在于:指令中的操作數地址指示出的寄存器中內容不是操作數,而是操作數的有效地址,即寄存地址指示出的寄存器中內容不是操作數,而是操作數的有效地址,即寄存器中是操作數的有效地址。器中是操作數的有效地址。操作數操作數主存主存OPRi尋址特征尋址特征地址地址R0RiRn寄存器寄存器 有效地址在寄存器中,有效地址在寄存器中,執行階段訪存執行階段訪存 便于編制循環程序便于編制循環程序1 1、相對尋址方式、相對尋址方式相對尋址是把程序計數器相對尋址是把程序計數器PCPC的內容加上指令格式中的形式地址的內容加上指令格式中的形式地址D D而形成而形成操作數的有效地址。程序計數器的內容就是當前指令
31、的地址操作數的有效地址。程序計數器的內容就是當前指令的地址. .形式地址形式地址D D通通常稱為偏移量。常稱為偏移量。“相對相對”尋址,就是相對于當前的指令地址進行浮動。尋址,就是相對于當前的指令地址進行浮動。 程序員無須用指令的絕對地址編程程序員無須用指令的絕對地址編程操作數操作數尋址特征尋址特征ALUOPD相對距離相對距離 D1000PC主存主存1000DOP D 的位數決定操作數的尋址范圍的位數決定操作數的尋址范圍 廣泛用于轉移指令廣泛用于轉移指令偏移尋址偏移尋址 2 2、基址尋址方式基址尋址方式 基址尋址方式是將基址尋址方式是將CPUCPU中基址寄存器的內容加上指令格式中基址寄存器的內
32、容加上指令格式中的形式地址而形成操作數的有效地址。中的形式地址而形成操作數的有效地址。 它的優點是可以擴大尋址能力。同形式地址相比,基址寄存器的位它的優點是可以擴大尋址能力。同形式地址相比,基址寄存器的位數可以設置得很長,從而可以在較大的存儲空間中尋址。數可以設置得很長,從而可以在較大的存儲空間中尋址。在程序的執行在程序的執行過程中過程中BRBR內容不變,由操作系統指定,形式地址內容不變,由操作系統指定,形式地址D D可變。可變。OPD操作數操作數主存主存尋址特征尋址特征ALUBR3 3、變址尋址方式變址尋址方式 變址尋址方式與基址尋址方式計算有效地址的方法十分相變址尋址方式與基址尋址方式計算
33、有效地址的方法十分相似,它把似,它把CPUCPU中某個變址寄存器的內容與形式地址中某個變址寄存器的內容與形式地址D D相加來形成相加來形成操作數有效地址。但使用變址尋址方式的目的不在于擴大尋址操作數有效地址。但使用變址尋址方式的目的不在于擴大尋址空間,而在于實現程序塊的規律性變化。空間,而在于實現程序塊的規律性變化。OPD操作數操作數主存主存尋址特征尋址特征ALUIX 便于處理數組問題便于處理數組問題 IX 的內容由用戶給定的內容由用戶給定 在程序的執行過程中在程序的執行過程中 IX 內容內容可變,形式地址可變,形式地址 D 不變不變堆棧尋址方式堆棧尋址方式 堆棧是一組能夠存儲和取出數據的暫時
34、存儲單元,與存儲堆棧是一組能夠存儲和取出數據的暫時存儲單元,與存儲器的基本功能一致,但堆棧在數據的存取方法和尋址方法上與器的基本功能一致,但堆棧在數據的存取方法和尋址方法上與存儲器不同,存儲器一般采用存儲器不同,存儲器一般采用隨機存儲方法隨機存儲方法,而堆棧采用,而堆棧采用先進先進后出的存儲方法后出的存儲方法,根據構成堆棧的基本單元的不同,計算機中,根據構成堆棧的基本單元的不同,計算機中的堆棧分為兩類:的堆棧分為兩類: 串連堆棧:構成堆棧的基本單元是串連堆棧:構成堆棧的基本單元是CPUCPU內的寄存器內的寄存器 存儲器堆棧:構成堆棧的基本單元是主存單元存儲器堆棧:構成堆棧的基本單元是主存單元1
35、)1)串聯堆棧串聯堆棧 一些計算機的一些計算機的CPU中有一組專門的寄存器,有中有一組專門的寄存器,有1616個或者更個或者更多,其中每一個寄存器能保存一個字的數據,由專用的寄存器多,其中每一個寄存器能保存一個字的數據,由專用的寄存器組構成堆棧的存儲空間,我們稱為組構成堆棧的存儲空間,我們稱為串聯堆棧串聯堆棧,專專用用寄寄存存器器組組堆棧空間堆棧空間某通用寄存器某通用寄存器1212入入棧棧過過程程45451267451267專專用用寄寄存存器器組組堆棧空間堆棧空間某通用寄存器某通用寄存器121245451267451267出出棧棧過過程程串聯堆棧存在一些限制串聯堆棧存在一些限制:l寄存器的數目
36、一般是有限的。如堆棧有寄存器的數目一般是有限的。如堆棧有6個寄存器,那么把多于個寄存器,那么把多于6個的數據個的數據壓入堆棧時壓入堆棧時,“老老”的數據就從棧底壓出并被丟失。的數據就從棧底壓出并被丟失。l是堆棧的讀出是破壞性的。當從堆棧取出一個數時,它就不能再在堆棧中是堆棧的讀出是破壞性的。當從堆棧取出一個數時,它就不能再在堆棧中存在。存在。 2)2)存儲器堆棧存儲器堆棧 在計算機中利用一部分主存儲器來作為堆棧空間,稱為在計算機中利用一部分主存儲器來作為堆棧空間,稱為存存儲器堆棧儲器堆棧。在存儲器類型的堆棧中需要一個堆棧指示器。在存儲器類型的堆棧中需要一個堆棧指示器SPSP,它,它是是CPU中
37、一個專用的寄存器。堆棧指示器中一個專用的寄存器。堆棧指示器SPSP指定的存儲器單元指定的存儲器單元就是堆棧的棧頂。就是堆棧的棧頂。 棧底棧底棧頂棧頂0000H0000HFFFFHFFFFH4141堆棧指針堆棧指針SPSPFFFFHFFFFH棧頂棧頂2323FFFEHFFFEH5757FFFDHFFFDHFFFCHFFFCH棧頂棧頂在內存中開辟一段存儲單元在內存中開辟一段存儲單元作為堆棧。設有通用寄存器作為堆棧。設有通用寄存器A A、B B、C C分別有數據分別有數據2323、5757、4141。執行下面的入棧和出棧操作執行下面的入棧和出棧操作指令:指令: PUSH APUSH A PUSH B
38、 PUSH B PUSH C PUSH C POP C POP C堆棧指針和堆棧變化如圖堆棧指針和堆棧變化如圖存儲器堆棧的特點:存儲器堆棧的特點:l存儲器堆棧是一個由高地址向低地址延伸的空間。存儲器堆棧是一個由高地址向低地址延伸的空間。l存儲器堆棧的棧頂由堆棧指針存儲器堆棧的棧頂由堆棧指針SPSP指示,如果用指示,如果用AA表示通用寄表示通用寄存器存器A A的內容,的內容,SPSP表示堆棧指示器,表示堆棧指示器,MspMsp表示堆棧指示的存儲器表示堆棧指示的存儲器棧頂單元棧頂單元, ,入棧操作和出棧操作可以表示為:入棧操作和出棧操作可以表示為: 入棧:入棧:AMsp AMsp ,SPSP1SP
39、1SP 出棧:出棧:SPSP1SP1SP,MspA MspA 存儲器堆棧的優點:存儲器堆棧的優點:l堆棧能夠具有程序員要求的任意長度;堆棧能夠具有程序員要求的任意長度;l存儲器堆棧的數目由程序員自己決定;存儲器堆棧的數目由程序員自己決定;l可以用對存儲器尋址的任何一條指令來對堆棧中的數據進行可以用對存儲器尋址的任何一條指令來對堆棧中的數據進行尋址。尋址。v尋址方式舉例尋址方式舉例例:一種二地址例:一種二地址RSRS型指令的結構如下所示:型指令的結構如下所示: 形式地址形式地址 D操作碼操作碼 X X I I寄存器寄存器6位位 4位位 1位位 2位位 16位位其中其中I I為間接尋址標志位,為間
40、接尋址標志位,X X為尋址模式字段,為尋址模式字段,D D為形式地址。通過為形式地址。通過I I,X X,D D的組合,可構成下表所示的尋址方式。的組合,可構成下表所示的尋址方式。 請寫出六種尋址方式的名稱。請寫出六種尋址方式的名稱。尋址方式尋址方式I IX X有效地址有效地址說明說明1 10 00000E=DE=D2 20 00101E=(PC)+DE=(PC)+DPCPC為程序計數器為程序計數器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為基址寄存器為基址寄存器直接內存尋址直接內存尋址相對尋址相對尋址變址尋址變址尋址寄存器間接尋址寄存器間接尋址內存間接尋址內存間接尋址基址尋址基址尋址例:某微機的指令格式如下所示:例:某微機的指令格式如下所示: 操作碼操作碼XDD:位移量:位移量X:尋址特征位:尋址特征位 X=00:直接尋址;:直接尋址; X=01:用基址寄存器:用基址寄存器BR進行變址;進行變址; X=10:用變址寄存器:用變址寄存器IX進行變址;進行變址; X=11:相對尋址:相對尋址設(設(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為寫數指令,為寫數指令,LADLAD為讀數指令。為讀數指令。(1)分析三種指令的指令格式與尋址方式特點)分析三種指令的指令格式與尋址方式特點。該指令是單字長二地址指令,是該指令是單字長二地址指令,是寄存器寄存器寄存器寄存器型,源寄存器型,源寄存器S S由由0 03 3位指位指定,目標寄存器定,目標寄存器D D由由4 47 7位指定。位指定。該指令是雙字長二地址指令,是該指令是雙字長二地址指令,是寄存器寄存器存儲器存儲器型,源寄存器型,源寄存器S S由由4 47 7位指位指定定,存儲器存儲器M M由由采用采用0 03 3位指定的變址寄
45、存器加位移量的位指定的變址寄存器加位移量的變址方式變址方式得到或者得到或者由由89位指定的基址寄存器加位移量的位指定的基址寄存器加位移量的基址尋址基址尋址得到。得到。該指令是雙字長二地址指令,該指令是雙字長二地址指令,寄存器寄存器存儲器存儲器型,其中目標寄存器型,其中目標寄存器D D由由4 47 7位指定,存儲器由指令中給出的位指定,存儲器由指令中給出的2020位地址由直接內存尋址決定。位地址由直接內存尋址決定。(2 2)CPUCPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執行時間有時會等于第三種指令的執行時間嗎?
46、種指令的執行時間有時會等于第三種指令的執行時間嗎? CPUCPU完成第一種指令所花時間最短,因為是完成第一種指令所花時間最短,因為是RRRR型指令,不需要訪問存儲器型指令,不需要訪問存儲器 CPUCPU完成第二種指令所花時間最長,因為是完成第二種指令所花時間最長,因為是RSRS型指令需要訪問存儲器,同型指令需要訪問存儲器,同時要進行尋址方式的變換運算,基址寄存器的內容加位移量或變址寄存器時要進行尋址方式的變換運算,基址寄存器的內容加位移量或變址寄存器內容加位移量,這也需要時間。內容加位移量,這也需要時間。 第二種指令的執行時間不會等于第三種指令,因為第三種指令也訪問存儲器,但第二種指令的執行時
47、間不會等于第三種指令,因為第三種指令也訪問存儲器,但節省了求有效地址運算的時間開銷。節省了求有效地址運算的時間開銷。(3 3)下列情況下每個十六進制指令字分別代表什么操作?其中如果有編碼)下列情況下每個十六進制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?不正確,如何改正才能成為合法指令? (F0F1) (F0F1)H H(3CD2)(3CD2)H H根據已知條件:根據已知條件: 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 地址單元的內容取至地址單元的內容取至15號寄存器號寄存器。001010001010 0000 0101 0101 01100110編碼正確,含義是把編碼正確,含義是把6號源寄存器的內容傳送至號源寄存器的內容傳送至5號目標寄存器。號目標寄存器。 6FD6H 6FD6H0110 1111 1101 01100110 1111 1101 0110011011011011 1111 1101 1101 01100110編碼錯誤,可改正為編碼錯誤,可改正為28D6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息管理三級考試應試技巧及試題及答案
- 備考信心中級社會工作者試題及答案
- 駐場安服面試題及答案
- 投資協議書合同范本
- 廣場器材維護合同協議書
- 附加題西游記試題及答案
- 鄭州初三物理試題及答案
- 建立臺賬式管理制度
- 文化旅游接待管理制度
- 建筑檢測公司管理制度
- 必修二公式結論默寫-高中數學人教A版(2019)必修第二冊
- 老舊小區電力安全改造方案
- 中醫特色治療進修匯報
- 中華人民共和國農村集體經濟組織法
- 2024年成人高考成考(專升本)醫學綜合試卷與參考答案
- 2020年高考英語試卷(新課標Ⅰ)(含解析版)
- 水利水電工程施工(CB)、監理(JL)表格大全
- 上海研學旅行課程設計
- 財經素養知識考試題及答案
- GB/T 25052-2024連續熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- 2024小學語文教學及說課課件:六年級上冊《只有一個地球》
評論
0/150
提交評論