工學(xué)計算機組成原理-第4章指令系統(tǒng)課件_第1頁
工學(xué)計算機組成原理-第4章指令系統(tǒng)課件_第2頁
工學(xué)計算機組成原理-第4章指令系統(tǒng)課件_第3頁
工學(xué)計算機組成原理-第4章指令系統(tǒng)課件_第4頁
工學(xué)計算機組成原理-第4章指令系統(tǒng)課件_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章指令系統(tǒng)1指令系統(tǒng)的發(fā)展與性能要求2指令的一般格式3尋址方式4指令格式的優(yōu)化第四章指令系統(tǒng)1指令系統(tǒng)的發(fā)展與性能要求1引言指令系統(tǒng):又稱指令集(InstructionSet)是計算機體系結(jié)構(gòu)設(shè)計的核心,是計算機軟、硬件接口,是用機器語言、匯編語言編寫程序的用戶所能看到的計算機的基本屬性。

指令系統(tǒng)的設(shè)計主要是確定它的指令格式、類型、操作以及對操作數(shù)的訪問方式。引言指令系統(tǒng):又稱指令集(InstructionSet)是24.1指令系統(tǒng)的發(fā)展與性能要求指令:即機器指令,要計算機執(zhí)行某種操作的命令。指令劃分:微指令、機器指令和宏指令。4.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng):一臺計算機中所有指令的集合;是表征計算機性能的重要因素。系列計算機:基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同

的一系列計算機。簡單復(fù)雜4.1指令系統(tǒng)的發(fā)展與性能要求指令:即機器指令,要計算機3完備性:直接提供的指令足夠使用,不必再用軟件來實現(xiàn)。有效性:程序能夠高效地運行。表現(xiàn)在占用存儲空間小、執(zhí)行速度快。規(guī)整性:指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。兼容性:完全兼容不可能,只能做到“向上兼容”(低檔機上的軟件可以在高檔機上運行)。4.1.2對指令系統(tǒng)性能的要求完備性:直接提供的指令足夠使用,不必再用軟件來4.1.244.1指令系統(tǒng)的發(fā)展系列計算機的基本指令系統(tǒng)相同,基本體系結(jié)構(gòu)相同。能實現(xiàn)向上兼容。隨著VLSL技術(shù)的發(fā)展,多數(shù)計算機指令系統(tǒng)多達幾百條,稱這些計算機為復(fù)雜指令系統(tǒng)計算機(CISC)。研制周期長難保證正確性不易調(diào)試維護后提出精簡指令系統(tǒng)計算機(RISC)。4.1指令系統(tǒng)的發(fā)展系列計算機的基本指令系統(tǒng)相同,基本體系結(jié)5一種指令集結(jié)構(gòu)中的指令到底要支持哪些類型的操作?這是指令集結(jié)構(gòu)功能設(shè)計的基本問題。◆精簡指令集計算機(RISC)盡可能地降低指令集結(jié)構(gòu)的復(fù)雜性,以達到簡化實現(xiàn),提高性能的目的。

當(dāng)今指令集結(jié)構(gòu)功能設(shè)計的一個主要趨勢?!?/p>

復(fù)雜指令集計算機(CISC)強化指令功能,實現(xiàn)軟件功能向硬件功能轉(zhuǎn)移。

兩種截然不同的方向:一種指令集結(jié)構(gòu)中的指令到底要支持哪些類型的操作?這是指令集結(jié)61.復(fù)雜指令集計算機(CISC)CISC

(ComplexInstructionSetComputer)1)CISC結(jié)構(gòu)追求的目標:強化指令功能,減少程序的指令條數(shù)其中Tc:表示時鐘周期。IN:表示CPU執(zhí)行某一程序中所包含的指令總數(shù)。CPI:表示執(zhí)行每條指令所需的平均時鐘周期數(shù)。CISC是通過減少IN值來減少Tcpu的1.復(fù)雜指令集計算機(CISC)1)CISC結(jié)構(gòu)追求的目標7

1)指令系統(tǒng)復(fù)雜,表現(xiàn)在:指令數(shù)多,一般大于100條尋址方式多,一般大于4種指令格式多,一般大于4種2)CISC的主要特點:5)有專用寄存器4)采用微程序控制3)各種指令都可訪問存儲器2)絕大多數(shù)指令需要多個機器時鐘周期方可完成6)難以用優(yōu)化編譯生成高效的目標代碼程序1)指令系統(tǒng)復(fù)雜,表現(xiàn)在:2)CISC的主要特8指令系統(tǒng)龐大硬件復(fù)雜、龐大執(zhí)行速度低編譯程序復(fù)雜、長部分指令使用效率低3)CISC結(jié)構(gòu)存在的缺點:指令系統(tǒng)龐大硬件復(fù)雜、龐大執(zhí)行速度低編譯程序復(fù)雜、長9執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數(shù))1Load22%2條件分支20%3比較16%4Store12%5加8%6與6%7減5%8寄存器-寄存器間數(shù)據(jù)移動4%9調(diào)用1%10返回1%合計96%Intel80X86最常用的十條指令

執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數(shù))1L102RISC

(ReducedInstructionSetComputer)1975年,IBM的801小型計算機1979年,加州大學(xué)提出RISC這一術(shù)語,并研制出RISC-I,RISC-II計算機1981年,斯坦福大學(xué)于推出了MIPSRISC計算機1987年,SUN公司的SPARC系列工作站1988年Motorola推出的MC88000RISC計算機1)RISC的產(chǎn)生RISC是通過減少CPI值,簡化結(jié)構(gòu)來減少Tcpu2RISC(ReducedInstruction11

1)精簡指令系統(tǒng)指令條數(shù)少,一般小于100條基本尋址方式少,一般23種指令格式少,一般23種指令長度一致(32位)2)RISC的主要特點:2)以寄存器-寄存器方式工作,除了Load/Store指令訪問存儲器外,其余指令只訪問寄存器1)精簡指令系統(tǒng)2)RISC的主要特點:2)以寄存器-寄存124)使用較多的通用寄存器,一般至少32個,不允許有專用寄存器5)大多采用硬聯(lián)線控制,少用或不用微程序?qū)崿F(xiàn)3)除了Load/Store指令訪問存儲器外,所有指令在一個機器時鐘周期完成,并采用流水線技術(shù)4)使用較多的通用寄存器,一般至少32個,不允許有專用寄存器134.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系高級語言用法與具體機器的指令系統(tǒng)無關(guān)。低級語言(機器語言&匯編語言)和具體機器的指令系統(tǒng)密切相關(guān)。匯編語言依賴于計算機的硬件結(jié)構(gòu)和指令系統(tǒng)。4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系高級語言用法與具體機器的指14高級語言如何訪問機器硬件資源高級語言提供了與匯編語言之間的調(diào)用接口。用匯編語言編寫的程序作為高級語言的一個外部過程或函數(shù)。利用堆棧來傳遞參數(shù)或參數(shù)的地址。兩者編譯生成目標(OBJ)文件。利用連接程序(LINKER)把它們連接成可執(zhí)行文件便可運行。高級語言如何訪問機器硬件資源高級語言提供了與匯編語言之間的調(diào)15操作碼字段:表示指令的操作特性與功能。地址碼字段:通常用于指定參與操作的操作數(shù)地址。4.2指令格式

指令的一般結(jié)構(gòu)形式:操作碼字段:表示指令的操作特性與功能。4.2指令格式164.2.1指令字長度指令的長度是指一條指令所包含二進制代碼的位數(shù),取決于操作碼長度和操作數(shù)地址個數(shù)及每個地址的長度。機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。指令長度與機器字長的關(guān)系:半字長指令單字長指令雙字長指令4.2.1指令字長度指令的長度是指一條指令所包含二進制代174.2.2操作碼(1)定長編碼:便于譯碼,擴展性差

IBM370機(2)變長編碼:能縮短指令平均長度

PDP-11

作用:指定指令是執(zhí)行什么性質(zhì)的操作。不同的指令用操作碼字段的不同編碼表示。4.2.2操作碼(1)定長編碼:便于譯碼,擴展性差18

(2)一地址指令:單操作數(shù)指令。該指令常以AC中數(shù)作為被操作數(shù),指令中地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回AC。

根據(jù)指令中操作數(shù)地址的個數(shù),將指令劃分為:4.2.3地址碼

(1)零地址指令:指令中只有操作碼,沒有地址碼。作用:常用于指定參與操作的操作數(shù)地址。(AC)OP(A)—>AC(2)一地址指令:單操作數(shù)指令。該指令常以AC中根據(jù)指19(3)二地址指令:雙操作數(shù)指令,兩地址指明被操作數(shù)和操作數(shù)地址,其中A1兼做結(jié)果地址:(A1)OP(A2)—>A1(4)三地址指令:三個地址分別指明被操作數(shù)、操作數(shù)以及結(jié)果存放地址:

(A1)OP(A2)—>A3(3)二地址指令:雙操作數(shù)指令,兩地址指明被操作(A1)OP20A(A)VSAC(AC)VSA為內(nèi)存或運算器中通用寄存器的地址;(A)為內(nèi)存或運算器中通用寄存器地址為A中的數(shù)。A(A)VSAC(AC)VSA為內(nèi)存或運算器中通用寄存器21二、地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:SS存儲器-存儲器類型RS寄存器-存儲器類型RR寄存器-寄存器類型 慢二、地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:慢22為了便于書寫和閱讀程序,每一指令采用3個或4個英文縮寫字母來表示,稱為指令助記符。

注:1在不同的計算機中,指令助記符的規(guī)定是不一樣的;2由于機器只能識別二進制語言,因此指令助記符必須轉(zhuǎn)換成相應(yīng)的二進制操作碼。4.2.4指令助記符為了便于書寫和閱讀程序,每一指令采用3個或4個英文縮寫238位微型計算機的指令格式如8088,字長8位,指令結(jié)構(gòu)可變包括單字長指令、雙字長指令和三字長指令操作碼長度固定PDP/11系列機的指令格式字長16位單字長指令操作碼字段不固定4.2.5指令格式舉例(P135)8位微型計算機的指令格式4.2.5指令格式舉例(P135244.2.6Pentium指令格式指令長度可變,最短1個字節(jié),最長12個字節(jié),典型的CISC指令系統(tǒng)由可選前綴(0~4)、操作碼(1~2)、一個由mod-R/M字節(jié)和一個SIB(ScaleIndexBase)比例變址字節(jié)組成的地址指定器、一個可選的位移量(0~4)和一個可選的立即數(shù)字段(0~4)構(gòu)成。指令前綴段取代操作數(shù)長度取代地址長度取代操作碼ModReg或操作碼R/MSIB位移量立即數(shù)4.2.6Pentium指令格式指令長度可變,最短1個字25指令前綴中的重復(fù)前綴指定串的重復(fù)操作,這樣使Pentium處理串比軟循環(huán)快得多。LOCK前綴用于多CPU環(huán)境中對共享存儲器的排他性訪問段取代用于改變默認段寄存器的情況操作數(shù)長度取代和地址長度取代用于在保護模式下決定操作數(shù)和指令的長度以下4個指令前綴都是可選的,分別為0或1個字節(jié)指令前綴段取代操作數(shù)長度取代地址長度取代4.2.6Pentium指令格式指令前綴中的重復(fù)前綴指定串的重復(fù)操作,這樣使Pentium處26操作碼是必須的,1~2個字節(jié)Mod、Reg、R/M為共1個字節(jié),是可選的。mod-R/M指定的操作數(shù)是在R中還是在M中。mod(2位)R/M(3位)的32種值構(gòu)成了8種寄存器方式和24種變址方式(參考匯編語言教材);Reg或OP(3位)指定另一個操作數(shù)(寄存器)或用作OP的補充。操作碼ModReg或操作碼R/MSIB位移量立即數(shù)1個字節(jié)1個字節(jié)4.2.6Pentium指令格式操作碼是必須的,1~2個字節(jié)操作碼ModReg或操作27S、I、B共1個字節(jié),分別是比例系數(shù)、變址寄存器號、基址寄存器號,可選。mod-R/M中的某些編碼要求SIB字節(jié)來完成尋址方式的指定;SS(2)指定比例變換的因子,Index(2)指定變址寄存器,Base(3)指定基址寄存器位移量:可以是0,1,2,4個字節(jié)立即數(shù):可以是0,1,2,4個字節(jié)操作碼ModReg或操作碼R/MSIB位移量立即數(shù)4.2.6Pentium指令格式S、I、B共1個字節(jié),分別是比例系數(shù)、變址寄存器號、基址寄存28尋址方式:采用地址指定方式時,形成操作數(shù)地址

或指令地址的方式。尋址方式指令尋址方式數(shù)據(jù)尋址方式4.3指令和數(shù)據(jù)的尋址方式尋址技術(shù):指的是指令按什么方式尋找(或訪問)到所需的操作數(shù)或信息。它影響主存規(guī)模速度及存取方式。尋址方式對應(yīng)用程序員是透明的。尋址方式:采用地址指定方式時,形成操作數(shù)地址尋址方式指令尋址291.順序?qū)ぶ贩绞?/p>

程序指令按順序存放在內(nèi)存中,執(zhí)行時按順序從內(nèi)存中取出所要執(zhí)行的指令。

程序計數(shù)器(指令指針寄存器,指令計數(shù)器)PC(ProgramCounter)存放正在執(zhí)行的指令地址(要執(zhí)行的下一指令地址)。一、指令的尋址方式1.順序?qū)ぶ贩绞揭?、指令的尋址方?0

程序要執(zhí)行的下條指令地址不是由PC給出,而是由本指令的地址碼給出。

用途:實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序。2.跳躍尋址方式程序要執(zhí)行的下條指令地址不是由PC給出,而是由本指令的地31尋址方式特征位:指出是何種尋址方式。有效地址由形式地址和尋址方式特征位等共同確定。實質(zhì):將形式地址(D)轉(zhuǎn)化為有效地址(E)。二、操作數(shù)尋址方式形式地址(D):偏移量,邏輯地址,指令中給出的地址。有效地址(E):真實地址,物理地址,用形式地址并結(jié)合某些計算規(guī)則求出來的地址。例:一種單地址指令的結(jié)構(gòu)如下:尋址方式特征位:指出是何種尋址方式。二、操作數(shù)尋址方式形式地32

不明顯指定操作數(shù)的地址,而是在指令中隱含著操作數(shù)的地址。比如單地址指令格式的第二操作數(shù)由AC隱含指定。1.隱含尋址(ImpliedAddressing)例:加法指令A(yù)DD[200H]0010AC0011200H=

ADDAC,[200H]ALU不明顯指定操作數(shù)的地址,而是在指令中隱含著操作數(shù)332.立即尋址(ImmediateAddressing)優(yōu)點:無需訪問內(nèi)存,指令的執(zhí)行時間很短。缺點:操作數(shù)的范圍受限。適用范圍:用于操作數(shù)固定的指令中,主要用于給寄存器或存儲器賦初值。例:MOVAL,13H特點:地址字段指出的不是操作數(shù)地址,而是

操作數(shù)本身。13HAL2.立即尋址(ImmediateAddressing)優(yōu)34其形式地址(D)又稱為直接地址(E)3.直接尋址(DirectAddressing)特點:地址字段直接指出操作數(shù)在內(nèi)存中地址。例:MOVAX,[2000H]E=D1000H1000HFFFFH優(yōu)點:簡單。缺點:尋址空間受限。0000H其形式地址(D)又稱為直接地址(E)3.直接尋址(Dire35特點:地址字段中的D是操作數(shù)地址的指針。4.間接尋址(IndirectAddressing)E=(D)1000H1000H5000H5000H13H說明:兩次訪存影響執(zhí)行速度,現(xiàn)已不大使用。優(yōu)點:尋址空間大。缺點:需多次訪問主存。特點:地址字段中的D是操作數(shù)地址的指針。4.間接尋址(In36寄存器尋址方式:寄存器中存放的是操作數(shù)。5.寄存器尋址(RegisterAddressing)和寄存器間接尋址(RegisterIndirectAddressing)區(qū)別:

(1)寄存器中前者存的是操作數(shù),后者是操作數(shù)地址。(2)前者不需要訪問內(nèi)存,速度相對快;尋址空間??;

后者需要訪問內(nèi)存,速度相對慢;尋址空間大。聯(lián)系:地址字段中給出的都是寄存器的編號。例:寄存器尋址:MOVAX,BX寄存器間接尋址:MOV[AX],[BX]寄存器間接尋址方式:寄存器中存放的不是操作數(shù),而是操作數(shù)在內(nèi)存中的地址。寄存器尋址方式:寄存器中存放的是操作數(shù)。5.寄存器尋址(R37特點:把PC的內(nèi)容加上指令格式中形式地址D而形成

操作數(shù)的有效地址E。6.相對尋址方式(RelativeAddressing)E=(PC)+D特點:把PC的內(nèi)容加上指令格式中形式地址D而形成6.相38特點:把基址寄存器的內(nèi)容加上指令格式中D而形成

操作數(shù)的E。用途:可用于擴大尋址能力。7.基址尋址方式(Base-RegisterAddressing)E=(BR)+D特點:把基址寄存器的內(nèi)容加上指令格式中D而形成7.基址尋址39特點:把某個變址寄存器的內(nèi)容加上指令格式中D

而形成操作數(shù)的E。用途:用于實現(xiàn)程序塊的有規(guī)律變化。8.變址尋址方式(IndexAddressing)例:MOVAX,2000H[SP]特點:把某個變址寄存器的內(nèi)容加上指令格式中D8.變址尋址方40基址尋址方式和變址尋址方式有什么特點?(上海交通大學(xué)碩士研究生入學(xué)考試試題)解:兩者有不同的特點和用途:①在基址尋址的系統(tǒng)中,基址是不變的,程序中的所有地址都相對于基地址來變化。而對于變址尋址則相反,指令中的D給出的是一個存儲器地址基準,變址寄存器X中存放的是相對于該基準地址的偏移量。不同的變址寄存器值指出了不同的單元;②在基址尋址中,偏移量位數(shù)較短,而在變址尋址中,偏移量位數(shù)足以表示整個存儲空間;③前者主要解決程序邏輯空間與存儲器物理空間的無關(guān)性,而后者主要為了可編寫出高效率訪問一片存儲空間的程序。基址尋址方式和變址尋址方式有什么特點?解:兩者有不同的41用途:用在I/O指令中,以實現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送,還適用于內(nèi)存的數(shù)據(jù)塊搬家。9.塊尋址方式(BlockAddressing)200H800H指定數(shù)據(jù)塊長度的三種方法:(1)指令中劃出字段指出長度;(2)指令中指出數(shù)據(jù)塊的首尾地址;(3)由塊結(jié)束字符指出數(shù)據(jù)塊的長度。用途:用在I/O指令中,以實現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的42方法:E由段寄存器的內(nèi)容加上段內(nèi)偏移地址而形成。應(yīng)用:微型機采用段尋址方式,20位物理地址為16位段地址左移四位加上16位偏移量。10.段尋址方式(SegmentAddressing)①段內(nèi)直接尋址;②段內(nèi)間接尋址;③段間直接尋址;④段間間接尋址;分類:方法:E由段寄存器的內(nèi)容加上段內(nèi)偏移地址而形成。10.段尋434.4堆棧尋址方式堆棧:是一組能存入和取出數(shù)據(jù)的暫時存儲單元。區(qū)別:對數(shù)據(jù)的存取方法或?qū)ぶ贩绞讲煌?。分類:串?lián)堆棧和存儲器堆棧。特點:數(shù)據(jù)傳送在棧頂和某個通用寄存器之間進行。存/取數(shù)方式:當(dāng)壓入數(shù)據(jù)時,棧中數(shù)據(jù)先向棧底移動一個數(shù)據(jù)字,空出棧頂寄存器來存放壓入的數(shù)據(jù)。當(dāng)取出數(shù)據(jù)時,從棧頂?shù)募拇嫫髦腥〕鰯?shù)據(jù),棧中數(shù)據(jù)向棧頂順序移動一個數(shù)據(jù)字。4.4.1串聯(lián)堆棧(硬堆棧,下壓堆棧)由CPU中的一組專門寄存器組成。4.4堆棧尋址方式堆棧:是一組能存入和取出數(shù)據(jù)的暫時存儲單44“先進后出”FILO(FirstInLastOut)?!昂筮M先出”LIFO(LastInFirstOut)?!跋冗M后出”FILO(FirstInLastOut)。45在主存儲器中劃分出一部分區(qū)域來作為堆棧。優(yōu)點:

(1)容量可任意;(2)可同時建立多個堆棧;(3)可用對存儲器尋址的任一指令來對堆棧中數(shù)據(jù)尋址。需設(shè)置一個堆棧指示器SP(StackPointer),它是CPU中的一個專用寄存器,指定堆棧的棧頂。

4.4.2存儲器堆棧(軟堆棧)缺點:

(1)容量有限;(2)讀出具有破壞性;在主存儲器中劃分出一部分區(qū)域來作為堆棧。4.4.2存儲器堆46串聯(lián)堆棧不需要堆棧指示器,棧頂是由硬件確定,操作時棧頂不動,數(shù)據(jù)串聯(lián)地在寄存器間移動。因存儲單元中的數(shù)據(jù)不容易移動,為此實行棧頂移動,數(shù)據(jù)不動。數(shù)據(jù)的壓入和讀出用“進棧”(PUSH)和“出?!?POP)指令。

進棧操作描述:

(A)—>Msp,

(SP)-1—>SP

出棧操作描述:

(SP)+1—>SP,(Msp)—>A注:進棧時先存入數(shù)據(jù),后修改堆棧指示器;

出棧時先修改堆棧指示器,后取出數(shù)據(jù)。串聯(lián)堆棧不需要堆棧指示器,棧頂是由硬件確定,操作時47[工學(xué)]計算機組成原理-第4章指令系統(tǒng)課件48尋址方式舉例:Pentium尋址方式舉例:Pentium49Pentium尋址方式Pentium尋址方式50P120例4某16位機器所使用的指令格式和尋址方式如下所示,該機有兩個20位基址寄存器,四個16位變址寄存器,十六個16位通用寄存器。指令匯編格式中的S(源),D(目標)都是通用寄存器,M是主存中的一個單元。三種指令的操作碼分別是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是傳送指令,STO為存數(shù)指令,LAD為取數(shù)指令。要求:(1)分析三種指令的指令格式與尋址方式特點。(2)CPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎?(3)下列情況下每個十六進制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?P120例4某16位機器所使用的指令格式和尋址方式如下所示,51P120例4F0F13CD2111100001111000100111100110100103C15號寄存器13CD2把主存13CD2的內(nèi)存裝載到15號寄存器6FD60110111111010110由于是單字長指令,則一定是MOV指令。則OP錯誤,修改為0010100011010110=28D6P120例4F0F13CD23C524.5典型指令(1)數(shù)據(jù)傳送指令主要用于主存和寄存器、寄存器和寄存器之間的數(shù)據(jù)傳送。主要有:取數(shù)、存數(shù)、傳送、成組傳送、字節(jié)交換、清除累加器和堆棧操作指令等。(2)算術(shù)運算指令主要用于定點或浮點的算術(shù)運算、向量運算。主要有:二進制定點加、減、乘、除指令;浮點加、減、乘、除指令,求反、求補、算術(shù)移位指令。4.5.1指令的分類4.5典型指令(1)數(shù)據(jù)傳送指令4.5.1指令的分類53(4)程序控制指令轉(zhuǎn)移指令一般分為:條件轉(zhuǎn)移、無條件轉(zhuǎn)移、轉(zhuǎn)子程序、返回主程序、中斷返回指令等。條件轉(zhuǎn)移的條件有進位標志位(C)、結(jié)果為零標志(Z)

、負標志(N)

、溢出標志(V)和奇偶標志(P)等。(5)輸入輸出指令主要用來啟動外圍設(shè)備,檢查測試外圍設(shè)備的工作狀態(tài),并實現(xiàn)外圍設(shè)備和CPU之間、外圍設(shè)備與外圍設(shè)備之間的信息傳送。(3)邏輯運算指令主要用于無符號數(shù)的位操作、代碼轉(zhuǎn)換、判斷及運算。主要有:邏輯加、乘、異或、移位等。(4)程序控制指令(3)邏輯運算指令54(6)字符串處理指令常用在文字編輯中對字符串進行處理。包括:字符串傳送、轉(zhuǎn)換、比較、查找、抽取和替換等。(7)特權(quán)指令是具有特殊權(quán)限的指令,只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供用戶使用。主要用于系統(tǒng)資源的分配和管理:改變系統(tǒng)工作方式,檢測用戶的訪問權(quán)限、修改虛擬存儲器管理的段表、頁表,完成任務(wù)的創(chuàng)建和切換。(8)其他指令狀態(tài)寄存器置位、復(fù)位、測試、暫停、空操作,以及其它系統(tǒng)控制用的特殊指令。(6)字符串處理指令554.5典型指令

基本指令系統(tǒng)P122表4.9介紹20%和80%規(guī)律:CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。VLSI技術(shù)發(fā)展引起的問題VLSI工藝要求規(guī)整性,而大量復(fù)雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難?,F(xiàn)在用微程序?qū)崿F(xiàn)復(fù)雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。CISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復(fù)雜程度。然而指令復(fù)雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結(jié)構(gòu)設(shè)計中,軟硬件的功能分配必須恰當(dāng)4.5典型指令 基本指令系統(tǒng)564.5典型指令

RISC特點(采用流水線技術(shù))簡單而統(tǒng)一格式的指令譯碼;大部分指令可以單周期執(zhí)行只有LOAD/STORE可以訪問存儲器簡單的尋址方式采用延遲轉(zhuǎn)移技術(shù)采用LOAD延遲技術(shù)三地址指令格式較多的寄存器對稱的指令格式返回4.5典型指令 RISC返回571.霍夫曼編碼(操作碼設(shè)計)

基本思想(頻率相關(guān)思想):當(dāng)事件發(fā)生的概率不均等時,對概率高的事件用較短的位數(shù)(或時間)來表示,對概率低的事件用較長的位數(shù)(或時間)來表示,導(dǎo)致平均位數(shù)(時間)最短。

表示方法:霍夫曼樹。4.6.1操作碼的優(yōu)化設(shè)計4.6指令格式的優(yōu)化1.霍夫曼編碼(操作碼設(shè)計)基本思想(頻率相關(guān)思想):當(dāng)58用霍夫曼壓縮概念進行編碼的步驟:(1)將要編碼的字符按出現(xiàn)頻率的次序排列,頻率相等的符號可任意排列;(2)把出現(xiàn)頻率最小的兩個符號合并,并將其頻率相加,按相加后的頻率次序重新排序;(3)繼續(xù)過程(2),直至只剩下兩個頻率,此后以相反過程進行編碼;(4)對最后兩個頻率分別指定代碼0和1;(5)若某一頻率由兩個頻率相加而成,則分別指定這兩個頻率的下一個代碼為0或1;(6)繼續(xù)過程(5),直到所有符號均已指定不同代碼為止。用霍夫曼壓縮概念進行編碼的步驟:(1)將要編碼的字符按出現(xiàn)頻59例:現(xiàn)設(shè)一臺模型機,共有7種不同的指令,使用頻度如表所示。若用定長操作碼表示,則需要3位。I10.40I20.30I30.15I40.05I50.04I60.03I70.03指令使用頻度操作碼表示的平均長度L=∑li*Pili:第i個操作碼的長度H=-∑Pilog2Pi=0.40*1.32+0.30*1.74+0.15*2.74+0.05*4.32+0.04*4.64+0.03*5.06+0.03*5.06=2.17則信息冗余量K=1-H/操作碼的實際平均長度=1-2.17/3=0.28(即28%)操作碼的信息源熵:信息源所包含的平均最短信息量.H=-∑Pilog2Pi,其中Pi為第i個信息源的頻度例:現(xiàn)設(shè)一臺模型機,共有7種不同的指令,使用頻度如表所示。若60∑Pili=0.40*1+0.30*2+0.15*3+0.05*5+0.04*5+0.03*5+0.03*5=2.21(位)這種編碼的信息冗余為K=1-2.17/2.21≈1.8%1.000.600.300.150.060.090.030.030.040.050.150.300.40111111000000為減少此信息冗余量,改用霍夫曼樹:

I7I6I5I4I3I2I1∑Pili=0.40*1+0.30*2+0.15*3+0.061例:7種指令使用頻率分別為0.4、0.26、0.15、0.06、0.05、0.04、0.04,要求對每種指令進行操作碼編碼。1.000.600.340.190.080.040.040.050.060.150.260.400.1111111100000(11111)(11110)(11101)(11100)(110)(10)(0)I7I6I1I2I3I4I50

結(jié)果:霍夫曼編碼平均碼長(∑pili)最短;

定長編碼平均碼長最長。

霍夫曼樹如下:

特點:節(jié)省空間(時間);操作碼規(guī)整性差,不利于譯碼硬件設(shè)計。例:7種指令使用頻率分別為0.4、0.26、0.15、0.062地址碼表示和尋址方式采取相應(yīng)優(yōu)化措施,程序所需總位數(shù)才得以減少。由于操作數(shù)地址是隨機的,無規(guī)律可循,歸結(jié)為指令格式的優(yōu)化。地址碼優(yōu)化時應(yīng)注意的問題:(1)操作數(shù)地址碼長度可在很寬的范圍內(nèi)變化,只要恰當(dāng)安排就可與變長操作碼很好合成定長指令。這樣地址碼寬度應(yīng)隨不同指令,其寬度可以變化;(2)

通過改變指令字中的地址數(shù)和地址碼的長度,以使單地址、雙地址甚至三地址都可以在指令中使用;(3)設(shè)法利用空白處存放立即操作數(shù)或常數(shù)。(4)豐富多彩的尋址方式。4.6.2地址碼的優(yōu)化設(shè)計地址碼表示和尋址方式采取相應(yīng)優(yōu)化措施,程序所需總位數(shù)631.地址碼個數(shù)的選擇2.縮短單個地址碼長度的方法(1)用間接尋址方式縮短地址碼長度。(2)用變址尋址方式縮短地址碼長度。(3)用寄存器間址尋址方式縮短地址碼長度。

縮短地址碼長度的方法:1.地址碼個數(shù)的選擇縮短地址碼長度的方法:64第四章指令系統(tǒng)1指令系統(tǒng)的發(fā)展與性能要求2指令的一般格式3尋址方式4指令格式的優(yōu)化第四章指令系統(tǒng)1指令系統(tǒng)的發(fā)展與性能要求65引言指令系統(tǒng):又稱指令集(InstructionSet)是計算機體系結(jié)構(gòu)設(shè)計的核心,是計算機軟、硬件接口,是用機器語言、匯編語言編寫程序的用戶所能看到的計算機的基本屬性。

指令系統(tǒng)的設(shè)計主要是確定它的指令格式、類型、操作以及對操作數(shù)的訪問方式。引言指令系統(tǒng):又稱指令集(InstructionSet)是664.1指令系統(tǒng)的發(fā)展與性能要求指令:即機器指令,要計算機執(zhí)行某種操作的命令。指令劃分:微指令、機器指令和宏指令。4.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng):一臺計算機中所有指令的集合;是表征計算機性能的重要因素。系列計算機:基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同

的一系列計算機。簡單復(fù)雜4.1指令系統(tǒng)的發(fā)展與性能要求指令:即機器指令,要計算機67完備性:直接提供的指令足夠使用,不必再用軟件來實現(xiàn)。有效性:程序能夠高效地運行。表現(xiàn)在占用存儲空間小、執(zhí)行速度快。規(guī)整性:指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。兼容性:完全兼容不可能,只能做到“向上兼容”(低檔機上的軟件可以在高檔機上運行)。4.1.2對指令系統(tǒng)性能的要求完備性:直接提供的指令足夠使用,不必再用軟件來4.1.2684.1指令系統(tǒng)的發(fā)展系列計算機的基本指令系統(tǒng)相同,基本體系結(jié)構(gòu)相同。能實現(xiàn)向上兼容。隨著VLSL技術(shù)的發(fā)展,多數(shù)計算機指令系統(tǒng)多達幾百條,稱這些計算機為復(fù)雜指令系統(tǒng)計算機(CISC)。研制周期長難保證正確性不易調(diào)試維護后提出精簡指令系統(tǒng)計算機(RISC)。4.1指令系統(tǒng)的發(fā)展系列計算機的基本指令系統(tǒng)相同,基本體系結(jié)69一種指令集結(jié)構(gòu)中的指令到底要支持哪些類型的操作?這是指令集結(jié)構(gòu)功能設(shè)計的基本問題?!艟喼噶罴嬎銠C(RISC)盡可能地降低指令集結(jié)構(gòu)的復(fù)雜性,以達到簡化實現(xiàn),提高性能的目的。

當(dāng)今指令集結(jié)構(gòu)功能設(shè)計的一個主要趨勢?!?/p>

復(fù)雜指令集計算機(CISC)強化指令功能,實現(xiàn)軟件功能向硬件功能轉(zhuǎn)移。

兩種截然不同的方向:一種指令集結(jié)構(gòu)中的指令到底要支持哪些類型的操作?這是指令集結(jié)701.復(fù)雜指令集計算機(CISC)CISC

(ComplexInstructionSetComputer)1)CISC結(jié)構(gòu)追求的目標:強化指令功能,減少程序的指令條數(shù)其中Tc:表示時鐘周期。IN:表示CPU執(zhí)行某一程序中所包含的指令總數(shù)。CPI:表示執(zhí)行每條指令所需的平均時鐘周期數(shù)。CISC是通過減少IN值來減少Tcpu的1.復(fù)雜指令集計算機(CISC)1)CISC結(jié)構(gòu)追求的目標71

1)指令系統(tǒng)復(fù)雜,表現(xiàn)在:指令數(shù)多,一般大于100條尋址方式多,一般大于4種指令格式多,一般大于4種2)CISC的主要特點:5)有專用寄存器4)采用微程序控制3)各種指令都可訪問存儲器2)絕大多數(shù)指令需要多個機器時鐘周期方可完成6)難以用優(yōu)化編譯生成高效的目標代碼程序1)指令系統(tǒng)復(fù)雜,表現(xiàn)在:2)CISC的主要特72指令系統(tǒng)龐大硬件復(fù)雜、龐大執(zhí)行速度低編譯程序復(fù)雜、長部分指令使用效率低3)CISC結(jié)構(gòu)存在的缺點:指令系統(tǒng)龐大硬件復(fù)雜、龐大執(zhí)行速度低編譯程序復(fù)雜、長73執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數(shù))1Load22%2條件分支20%3比較16%4Store12%5加8%6與6%7減5%8寄存器-寄存器間數(shù)據(jù)移動4%9調(diào)用1%10返回1%合計96%Intel80X86最常用的十條指令

執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數(shù))1L742RISC

(ReducedInstructionSetComputer)1975年,IBM的801小型計算機1979年,加州大學(xué)提出RISC這一術(shù)語,并研制出RISC-I,RISC-II計算機1981年,斯坦福大學(xué)于推出了MIPSRISC計算機1987年,SUN公司的SPARC系列工作站1988年Motorola推出的MC88000RISC計算機1)RISC的產(chǎn)生RISC是通過減少CPI值,簡化結(jié)構(gòu)來減少Tcpu2RISC(ReducedInstruction75

1)精簡指令系統(tǒng)指令條數(shù)少,一般小于100條基本尋址方式少,一般23種指令格式少,一般23種指令長度一致(32位)2)RISC的主要特點:2)以寄存器-寄存器方式工作,除了Load/Store指令訪問存儲器外,其余指令只訪問寄存器1)精簡指令系統(tǒng)2)RISC的主要特點:2)以寄存器-寄存764)使用較多的通用寄存器,一般至少32個,不允許有專用寄存器5)大多采用硬聯(lián)線控制,少用或不用微程序?qū)崿F(xiàn)3)除了Load/Store指令訪問存儲器外,所有指令在一個機器時鐘周期完成,并采用流水線技術(shù)4)使用較多的通用寄存器,一般至少32個,不允許有專用寄存器774.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系高級語言用法與具體機器的指令系統(tǒng)無關(guān)。低級語言(機器語言&匯編語言)和具體機器的指令系統(tǒng)密切相關(guān)。匯編語言依賴于計算機的硬件結(jié)構(gòu)和指令系統(tǒng)。4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系高級語言用法與具體機器的指78高級語言如何訪問機器硬件資源高級語言提供了與匯編語言之間的調(diào)用接口。用匯編語言編寫的程序作為高級語言的一個外部過程或函數(shù)。利用堆棧來傳遞參數(shù)或參數(shù)的地址。兩者編譯生成目標(OBJ)文件。利用連接程序(LINKER)把它們連接成可執(zhí)行文件便可運行。高級語言如何訪問機器硬件資源高級語言提供了與匯編語言之間的調(diào)79操作碼字段:表示指令的操作特性與功能。地址碼字段:通常用于指定參與操作的操作數(shù)地址。4.2指令格式

指令的一般結(jié)構(gòu)形式:操作碼字段:表示指令的操作特性與功能。4.2指令格式804.2.1指令字長度指令的長度是指一條指令所包含二進制代碼的位數(shù),取決于操作碼長度和操作數(shù)地址個數(shù)及每個地址的長度。機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。指令長度與機器字長的關(guān)系:半字長指令單字長指令雙字長指令4.2.1指令字長度指令的長度是指一條指令所包含二進制代814.2.2操作碼(1)定長編碼:便于譯碼,擴展性差

IBM370機(2)變長編碼:能縮短指令平均長度

PDP-11

作用:指定指令是執(zhí)行什么性質(zhì)的操作。不同的指令用操作碼字段的不同編碼表示。4.2.2操作碼(1)定長編碼:便于譯碼,擴展性差82

(2)一地址指令:單操作數(shù)指令。該指令常以AC中數(shù)作為被操作數(shù),指令中地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回AC。

根據(jù)指令中操作數(shù)地址的個數(shù),將指令劃分為:4.2.3地址碼

(1)零地址指令:指令中只有操作碼,沒有地址碼。作用:常用于指定參與操作的操作數(shù)地址。(AC)OP(A)—>AC(2)一地址指令:單操作數(shù)指令。該指令常以AC中根據(jù)指83(3)二地址指令:雙操作數(shù)指令,兩地址指明被操作數(shù)和操作數(shù)地址,其中A1兼做結(jié)果地址:(A1)OP(A2)—>A1(4)三地址指令:三個地址分別指明被操作數(shù)、操作數(shù)以及結(jié)果存放地址:

(A1)OP(A2)—>A3(3)二地址指令:雙操作數(shù)指令,兩地址指明被操作(A1)OP84A(A)VSAC(AC)VSA為內(nèi)存或運算器中通用寄存器的地址;(A)為內(nèi)存或運算器中通用寄存器地址為A中的數(shù)。A(A)VSAC(AC)VSA為內(nèi)存或運算器中通用寄存器85二、地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:SS存儲器-存儲器類型RS寄存器-存儲器類型RR寄存器-寄存器類型 慢二、地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:慢86為了便于書寫和閱讀程序,每一指令采用3個或4個英文縮寫字母來表示,稱為指令助記符。

注:1在不同的計算機中,指令助記符的規(guī)定是不一樣的;2由于機器只能識別二進制語言,因此指令助記符必須轉(zhuǎn)換成相應(yīng)的二進制操作碼。4.2.4指令助記符為了便于書寫和閱讀程序,每一指令采用3個或4個英文縮寫878位微型計算機的指令格式如8088,字長8位,指令結(jié)構(gòu)可變包括單字長指令、雙字長指令和三字長指令操作碼長度固定PDP/11系列機的指令格式字長16位單字長指令操作碼字段不固定4.2.5指令格式舉例(P135)8位微型計算機的指令格式4.2.5指令格式舉例(P135884.2.6Pentium指令格式指令長度可變,最短1個字節(jié),最長12個字節(jié),典型的CISC指令系統(tǒng)由可選前綴(0~4)、操作碼(1~2)、一個由mod-R/M字節(jié)和一個SIB(ScaleIndexBase)比例變址字節(jié)組成的地址指定器、一個可選的位移量(0~4)和一個可選的立即數(shù)字段(0~4)構(gòu)成。指令前綴段取代操作數(shù)長度取代地址長度取代操作碼ModReg或操作碼R/MSIB位移量立即數(shù)4.2.6Pentium指令格式指令長度可變,最短1個字89指令前綴中的重復(fù)前綴指定串的重復(fù)操作,這樣使Pentium處理串比軟循環(huán)快得多。LOCK前綴用于多CPU環(huán)境中對共享存儲器的排他性訪問段取代用于改變默認段寄存器的情況操作數(shù)長度取代和地址長度取代用于在保護模式下決定操作數(shù)和指令的長度以下4個指令前綴都是可選的,分別為0或1個字節(jié)指令前綴段取代操作數(shù)長度取代地址長度取代4.2.6Pentium指令格式指令前綴中的重復(fù)前綴指定串的重復(fù)操作,這樣使Pentium處90操作碼是必須的,1~2個字節(jié)Mod、Reg、R/M為共1個字節(jié),是可選的。mod-R/M指定的操作數(shù)是在R中還是在M中。mod(2位)R/M(3位)的32種值構(gòu)成了8種寄存器方式和24種變址方式(參考匯編語言教材);Reg或OP(3位)指定另一個操作數(shù)(寄存器)或用作OP的補充。操作碼ModReg或操作碼R/MSIB位移量立即數(shù)1個字節(jié)1個字節(jié)4.2.6Pentium指令格式操作碼是必須的,1~2個字節(jié)操作碼ModReg或操作91S、I、B共1個字節(jié),分別是比例系數(shù)、變址寄存器號、基址寄存器號,可選。mod-R/M中的某些編碼要求SIB字節(jié)來完成尋址方式的指定;SS(2)指定比例變換的因子,Index(2)指定變址寄存器,Base(3)指定基址寄存器位移量:可以是0,1,2,4個字節(jié)立即數(shù):可以是0,1,2,4個字節(jié)操作碼ModReg或操作碼R/MSIB位移量立即數(shù)4.2.6Pentium指令格式S、I、B共1個字節(jié),分別是比例系數(shù)、變址寄存器號、基址寄存92尋址方式:采用地址指定方式時,形成操作數(shù)地址

或指令地址的方式。尋址方式指令尋址方式數(shù)據(jù)尋址方式4.3指令和數(shù)據(jù)的尋址方式尋址技術(shù):指的是指令按什么方式尋找(或訪問)到所需的操作數(shù)或信息。它影響主存規(guī)模速度及存取方式。尋址方式對應(yīng)用程序員是透明的。尋址方式:采用地址指定方式時,形成操作數(shù)地址尋址方式指令尋址931.順序?qū)ぶ贩绞?/p>

程序指令按順序存放在內(nèi)存中,執(zhí)行時按順序從內(nèi)存中取出所要執(zhí)行的指令。

程序計數(shù)器(指令指針寄存器,指令計數(shù)器)PC(ProgramCounter)存放正在執(zhí)行的指令地址(要執(zhí)行的下一指令地址)。一、指令的尋址方式1.順序?qū)ぶ贩绞揭?、指令的尋址方?4

程序要執(zhí)行的下條指令地址不是由PC給出,而是由本指令的地址碼給出。

用途:實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序。2.跳躍尋址方式程序要執(zhí)行的下條指令地址不是由PC給出,而是由本指令的地95尋址方式特征位:指出是何種尋址方式。有效地址由形式地址和尋址方式特征位等共同確定。實質(zhì):將形式地址(D)轉(zhuǎn)化為有效地址(E)。二、操作數(shù)尋址方式形式地址(D):偏移量,邏輯地址,指令中給出的地址。有效地址(E):真實地址,物理地址,用形式地址并結(jié)合某些計算規(guī)則求出來的地址。例:一種單地址指令的結(jié)構(gòu)如下:尋址方式特征位:指出是何種尋址方式。二、操作數(shù)尋址方式形式地96

不明顯指定操作數(shù)的地址,而是在指令中隱含著操作數(shù)的地址。比如單地址指令格式的第二操作數(shù)由AC隱含指定。1.隱含尋址(ImpliedAddressing)例:加法指令A(yù)DD[200H]0010AC0011200H=

ADDAC,[200H]ALU不明顯指定操作數(shù)的地址,而是在指令中隱含著操作數(shù)972.立即尋址(ImmediateAddressing)優(yōu)點:無需訪問內(nèi)存,指令的執(zhí)行時間很短。缺點:操作數(shù)的范圍受限。適用范圍:用于操作數(shù)固定的指令中,主要用于給寄存器或存儲器賦初值。例:MOVAL,13H特點:地址字段指出的不是操作數(shù)地址,而是

操作數(shù)本身。13HAL2.立即尋址(ImmediateAddressing)優(yōu)98其形式地址(D)又稱為直接地址(E)3.直接尋址(DirectAddressing)特點:地址字段直接指出操作數(shù)在內(nèi)存中地址。例:MOVAX,[2000H]E=D1000H1000HFFFFH優(yōu)點:簡單。缺點:尋址空間受限。0000H其形式地址(D)又稱為直接地址(E)3.直接尋址(Dire99特點:地址字段中的D是操作數(shù)地址的指針。4.間接尋址(IndirectAddressing)E=(D)1000H1000H5000H5000H13H說明:兩次訪存影響執(zhí)行速度,現(xiàn)已不大使用。優(yōu)點:尋址空間大。缺點:需多次訪問主存。特點:地址字段中的D是操作數(shù)地址的指針。4.間接尋址(In100寄存器尋址方式:寄存器中存放的是操作數(shù)。5.寄存器尋址(RegisterAddressing)和寄存器間接尋址(RegisterIndirectAddressing)區(qū)別:

(1)寄存器中前者存的是操作數(shù),后者是操作數(shù)地址。(2)前者不需要訪問內(nèi)存,速度相對快;尋址空間??;

后者需要訪問內(nèi)存,速度相對慢;尋址空間大。聯(lián)系:地址字段中給出的都是寄存器的編號。例:寄存器尋址:MOVAX,BX寄存器間接尋址:MOV[AX],[BX]寄存器間接尋址方式:寄存器中存放的不是操作數(shù),而是操作數(shù)在內(nèi)存中的地址。寄存器尋址方式:寄存器中存放的是操作數(shù)。5.寄存器尋址(R101特點:把PC的內(nèi)容加上指令格式中形式地址D而形成

操作數(shù)的有效地址E。6.相對尋址方式(RelativeAddressing)E=(PC)+D特點:把PC的內(nèi)容加上指令格式中形式地址D而形成6.相102特點:把基址寄存器的內(nèi)容加上指令格式中D而形成

操作數(shù)的E。用途:可用于擴大尋址能力。7.基址尋址方式(Base-RegisterAddressing)E=(BR)+D特點:把基址寄存器的內(nèi)容加上指令格式中D而形成7.基址尋址103特點:把某個變址寄存器的內(nèi)容加上指令格式中D

而形成操作數(shù)的E。用途:用于實現(xiàn)程序塊的有規(guī)律變化。8.變址尋址方式(IndexAddressing)例:MOVAX,2000H[SP]特點:把某個變址寄存器的內(nèi)容加上指令格式中D8.變址尋址方104基址尋址方式和變址尋址方式有什么特點?(上海交通大學(xué)碩士研究生入學(xué)考試試題)解:兩者有不同的特點和用途:①在基址尋址的系統(tǒng)中,基址是不變的,程序中的所有地址都相對于基地址來變化。而對于變址尋址則相反,指令中的D給出的是一個存儲器地址基準,變址寄存器X中存放的是相對于該基準地址的偏移量。不同的變址寄存器值指出了不同的單元;②在基址尋址中,偏移量位數(shù)較短,而在變址尋址中,偏移量位數(shù)足以表示整個存儲空間;③前者主要解決程序邏輯空間與存儲器物理空間的無關(guān)性,而后者主要為了可編寫出高效率訪問一片存儲空間的程序。基址尋址方式和變址尋址方式有什么特點?解:兩者有不同的105用途:用在I/O指令中,以實現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送,還適用于內(nèi)存的數(shù)據(jù)塊搬家。9.塊尋址方式(BlockAddressing)200H800H指定數(shù)據(jù)塊長度的三種方法:(1)指令中劃出字段指出長度;(2)指令中指出數(shù)據(jù)塊的首尾地址;(3)由塊結(jié)束字符指出數(shù)據(jù)塊的長度。用途:用在I/O指令中,以實現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的106方法:E由段寄存器的內(nèi)容加上段內(nèi)偏移地址而形成。應(yīng)用:微型機采用段尋址方式,20位物理地址為16位段地址左移四位加上16位偏移量。10.段尋址方式(SegmentAddressing)①段內(nèi)直接尋址;②段內(nèi)間接尋址;③段間直接尋址;④段間間接尋址;分類:方法:E由段寄存器的內(nèi)容加上段內(nèi)偏移地址而形成。10.段尋1074.4堆棧尋址方式堆棧:是一組能存入和取出數(shù)據(jù)的暫時存儲單元。區(qū)別:對數(shù)據(jù)的存取方法或?qū)ぶ贩绞讲煌?。分類:串?lián)堆棧和存儲器堆棧。特點:數(shù)據(jù)傳送在棧頂和某個通用寄存器之間進行。存/取數(shù)方式:當(dāng)壓入數(shù)據(jù)時,棧中數(shù)據(jù)先向棧底移動一個數(shù)據(jù)字,空出棧頂寄存器來存放壓入的數(shù)據(jù)。當(dāng)取出數(shù)據(jù)時,從棧頂?shù)募拇嫫髦腥〕鰯?shù)據(jù),棧中數(shù)據(jù)向棧頂順序移動一個數(shù)據(jù)字。4.4.1串聯(lián)堆棧(硬堆棧,下壓堆棧)由CPU中的一組專門寄存器組成。4.4堆棧尋址方式堆棧:是一組能存入和取出數(shù)據(jù)的暫時存儲單108“先進后出”FILO(FirstInLastOut)?!昂筮M先出”LIFO(LastInFirstOut)。“先進后出”FILO(FirstInLastOut)。109在主存儲器中劃分出一部分區(qū)域來作為堆棧。優(yōu)點:

(1)容量可任意;(2)可同時建立多個堆棧;(3)可用對存儲器尋址的任一指令來對堆棧中數(shù)據(jù)尋址。需設(shè)置一個堆棧指示器SP(StackPointer),它是CPU中的一個專用寄存器,指定堆棧的棧頂。

4.4.2存儲器堆棧(軟堆棧)缺點:

(1)容量有限;(2)讀出具有破壞性;在主存儲器中劃分出一部分區(qū)域來作為堆棧。4.4.2存儲器堆110串聯(lián)堆棧不需要堆棧指示器,棧頂是由硬件確定,操作時棧頂不動,數(shù)據(jù)串聯(lián)地在寄存器間移動。因存儲單元中的數(shù)據(jù)不容易移動,為此實行棧頂移動,數(shù)據(jù)不動。數(shù)據(jù)的壓入和讀出用“進?!?PUSH)和“出棧”(POP)指令。

進棧操作描述:

(A)—>Msp,

(SP)-1—>SP

出棧操作描述:

(SP)+1—>SP,(Msp)—>A注:進棧時先存入數(shù)據(jù),后修改堆棧指示器;

出棧時先修改堆棧指示器,后取出數(shù)據(jù)。串聯(lián)堆棧不需要堆棧指示器,棧頂是由硬件確定,操作時111[工學(xué)]計算機組成原理-第4章指令系統(tǒng)課件112尋址方式舉例:Pentium尋址方式舉例:Pentium113Pentium尋址方式Pentium尋址方式114P120例4某16位機器所使用的指令格式和尋址方式如下所示,該機有兩個20位基址寄存器,四個16位變址寄存器,十六個16位通用寄存器。指令匯編格式中的S(源),D(目標)都是通用寄存器,M是主存中的一個單元。三種指令的操作碼分別是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是傳送指令,STO為存數(shù)指令,LAD為取數(shù)指令。要求:(1)分析三種指令的指令格式與尋址方式特點。(2)CPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎?(3)下列情況下每個十六進制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?P120例4某16位機器所使用的指令格式和尋址方式如下所示,115P120例4F0F13CD2111100001111000100111100110100103C15號寄存器13CD2把主存13CD2的內(nèi)存裝載到15號寄存器6FD60110111111010110由于是單字長指令,則一定是MOV指令。則OP錯誤,修改為0010100011010110=28D6P120例4F0F13CD23C1164.5典型指令(1)數(shù)據(jù)傳送指令主要用于主存和寄存器、寄存器和寄存器之間的數(shù)據(jù)傳送。主要有:取數(shù)、存數(shù)、傳送、成組傳送、字節(jié)交換、清除累加器和堆棧操作指令等。(2)算術(shù)運算指令主要用于定點或浮點的算術(shù)運算、向量運算。主要有:二進制定點加、減、乘、除指令;浮點加、減、乘、除指令,求反、求補、算術(shù)移位指令。4.5.1指令的分類4.5典型指令(1)數(shù)據(jù)傳送指令4.5.1指令的分類117(4)程序控制指令轉(zhuǎn)移指令一般分為:條件轉(zhuǎn)移、無條件轉(zhuǎn)移、轉(zhuǎn)子程序、返回主程序、中斷返回指令等。條件轉(zhuǎn)移的條件有進位標志位(C)、結(jié)果為零標志(Z)

、負標志(N)

、溢出標志(V)和奇偶標志(P)等。(5)輸入輸出指令主要用來啟動外圍設(shè)備,檢查測試外圍設(shè)備的工作狀態(tài),并實現(xiàn)外圍設(shè)備和CPU之間、外圍設(shè)備與外圍設(shè)備之間的信息傳送。(3)邏輯運算指令主要用于無符號數(shù)的位操作、代碼轉(zhuǎn)換、判斷及運算。主要有:邏輯加、乘、異或、移位等。(4)程序控制指令(3)邏輯運算指令118(6)字符串處理指令常用在文字編輯中對字符串進行處理。包括:字符串傳送、轉(zhuǎn)換、比較、查找、抽取和替換等。(7)特權(quán)指令是具有特殊權(quán)限的指令,只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供用戶使用。主要用于系統(tǒng)資源的分配和管理:改變系統(tǒng)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論