計算機(jī)組成原理課件第4章_第1頁
計算機(jī)組成原理課件第4章_第2頁
計算機(jī)組成原理課件第4章_第3頁
計算機(jī)組成原理課件第4章_第4頁
計算機(jī)組成原理課件第4章_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主講教師 莊春興*24.1指令系統(tǒng)的發(fā)展和性能要求指令系統(tǒng)的發(fā)展和性能要求4.2指令格式指令格式4.3指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式4.4堆棧尋址方式堆棧尋址方式4.5典型指令典型指令*3p機(jī)器指令(指令)機(jī)器指令(指令)n計算機(jī)能直接識別、執(zhí)行的某種操作命令。n微指令:微程序級的命令,它屬于硬件;n宏指令:由若干條機(jī)器指令組成的軟件指令,它屬于軟件;n機(jī)器指令(指令):介于微指令與宏指令之間,每條指令可完成一個獨立的算術(shù)運算或邏輯運算。p程序程序n是解決某一實際問題的指令序列p指令系統(tǒng)(指令集)指令系統(tǒng)(指令集)n 一臺計算機(jī)中所有機(jī)器指令的集合。n機(jī)器硬件設(shè)計的依據(jù),也是軟件設(shè)計

2、的基礎(chǔ)。n硬件和軟件間的界面,直接影響計算機(jī)系統(tǒng)性能*4p指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計算機(jī)。pIBM,PDP-11,VAX-11,ARM,Intel-x86, Pentiump系列計算機(jī)主要是解決軟件兼容的問題。新計算機(jī)中必須包含老計算機(jī)的指令系統(tǒng),保證軟件向上兼容,保護(hù)用戶投資。*5pCISC(復(fù)雜指令系統(tǒng)計算機(jī)復(fù)雜指令系統(tǒng)計算機(jī))nComplex Instruction System Computern指令數(shù)量多(多達(dá)幾百條),指令功能,復(fù)雜的計算機(jī)。n難以保證正確性,不易調(diào)試維護(hù),造成硬件資源浪費pRISC(精簡指令系統(tǒng)計算機(jī)精簡指令系統(tǒng)計算機(jī))nReduced Ins

3、truction System Computern指令數(shù)量少,指令功能單一的計算機(jī)。*6p完備性:指令豐富,功能齊全,使用方便。p有效性:程序占空間小,執(zhí)行速度快。p規(guī)整性:n對稱性(所有寄存器、存儲單元同等對待)、勻齊性(一種操作支持多種數(shù)據(jù)類型):n指令格式和數(shù)據(jù)格式的一 致性(指令長度和數(shù)據(jù)長度通常是字節(jié)的整數(shù)倍):p兼容性:系列機(jī)軟件向上兼容*7p高級語言(如高級語言(如C,F(xiàn)ORTRAN等)等)n其語句和用法與具體機(jī)器的指令系統(tǒng)無關(guān),易編程。n不能用于編寫直接訪問機(jī)器硬件資源的系統(tǒng)軟件或設(shè)備控制軟件不能用于編寫直接訪問機(jī)器硬件資源的系統(tǒng)軟件或設(shè)備控制軟件p低級語言低級語言n機(jī)器語言(

4、二進(jìn)制語言)n匯編語言(符號語言)n面向機(jī)器的語言,和具體機(jī)器的指令系統(tǒng)密切相關(guān)。機(jī)器語言用指令代碼編寫程序,而符號語言用指令助記符來編寫程序。p必須借助必須借助匯編程序匯編程序或或編譯程序編譯程序,把符號語言或高級語言翻譯成二進(jìn)制,把符號語言或高級語言翻譯成二進(jìn)制碼組成的碼組成的機(jī)器語言機(jī)器語言。*8p表示一條指令的機(jī)器字,稱為指令字指令字,簡稱指令。p指令格式:用二進(jìn)制代碼表示指令的結(jié)構(gòu)形式。操作碼字段地址碼字段*9p操作碼字段表征指令的操作特性與功能p指令系統(tǒng)中每一條指令對應(yīng)一個操作碼p操作碼字段的位數(shù)取決于指令系統(tǒng)的規(guī)模nn=2L p定長指令、變長指令(固定位數(shù)和可變位數(shù))操作碼字段地

5、址碼字段*10p地址碼通常指定參與操作的地址碼通常指定參與操作的操作數(shù)的地址操作數(shù)的地址或或操作數(shù)本身操作數(shù)本身p地址碼包括地址碼包括被操作數(shù),操作數(shù),操作結(jié)果被操作數(shù),操作數(shù),操作結(jié)果 操作碼 1 2 3操作碼 1 2操作碼 1 操作碼 二地址格式三地址格式一地址格式零地址格式*11(1)零地址指令兩種情況:n不需要操作數(shù),如空操作指令NOP;n隱含一個操作數(shù)位于累加器AC中。如十進(jìn)制修正指令DAA。(2)一地址指令有兩種情況:n只需要一個操作數(shù),如求反指令NOT;n需要兩個操作數(shù),但另一個操作數(shù)在累加寄存器AC中(AC)OP(A)-AC*12(3)二地址指令(A1)OP(A2)-A1(4)

6、三地址指令(A1)OP(A2)-A3nA1為被操作數(shù)地址,也稱源操作數(shù)地址; nA2為操作數(shù)地址,也稱終點操作數(shù)地址; nA3為存放結(jié)果的地址。 nA1,A2,A3可以是內(nèi)存中的單元地址,也可以是運算器中通用寄存器的地址。 *13 *14p指令中包含二進(jìn)制代碼的位數(shù)p機(jī)器字長機(jī)器字長n計算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計算機(jī)的運算精度p指令字長度指令字長度與機(jī)器字的長度有關(guān): n 單字長,雙字長,半字長。p等長指令: 結(jié)構(gòu)簡單,控制線路簡單。p變長指令: 結(jié)構(gòu)靈活,充分利用指令長度,控制復(fù)雜*15典典型型指指令令 指令助記符指令助記符 二進(jìn)制操作碼二進(jìn)制操作碼 加法加法 ADD 00

7、1減法減法 SUB 010傳送傳送 MOV 011跳轉(zhuǎn)跳轉(zhuǎn) JMP 100轉(zhuǎn)子轉(zhuǎn)子 JSR 101存儲存儲 STR 110讀數(shù)讀數(shù) LDA 111 為了為了書寫和閱讀程序,每條指令通常用書寫和閱讀程序,每條指令通常用3個或個或4個英文個英文縮寫字母來表示。縮寫字母來表示。表表4.2指令助記符指令助記符舉例舉例*161.八位微型計算機(jī)的指令格式八位微型計算機(jī)的指令格式 8位微型機(jī)字長只有位微型機(jī)字長只有8位,指令結(jié)構(gòu)是一種可變字長形式,位,指令結(jié)構(gòu)是一種可變字長形式,包含單字長、雙字長、三字長指令等多種。包含單字長、雙字長、三字長指令等多種。操作碼 操作碼 1 2操作碼 1 單字長指令 雙字長指

8、令 三字長指令 *172.PDP/11系列機(jī)指令格式系列機(jī)指令格式操作碼字段是操作碼字段是不固定不固定,長度不相同長度不相同。這樣做可以擴(kuò)展操作碼以包含較多的指令。但。這樣做可以擴(kuò)展操作碼以包含較多的指令。但是操作碼字段不固定,對控制器的設(shè)計來說必將復(fù)雜化是操作碼字段不固定,對控制器的設(shè)計來說必將復(fù)雜化*184. ARM指令格式指令格式*194.pentium指令格式指令格式pentium機(jī)的指令字長度是可變的:從字節(jié)到機(jī)的指令字長度是可變的:從字節(jié)到12字節(jié),還可以帶字節(jié),還可以帶前綴,指令格式如下所示。前綴,指令格式如下所示。 0或或1 0或或10或或10或或1(字節(jié)數(shù)字節(jié)數(shù))指令前綴指令

9、前綴段取代段取代操作數(shù)長度取代操作數(shù)長度取代地址長度取代地址長度取代1或或20或或1 0或或1 0,1,2,4 0,1,2,4(字節(jié)數(shù)字節(jié)數(shù))操作操作碼碼ModReg或或操作碼操作碼R/M比例比例S變變址址I基址基址B位移量位移量立即數(shù)立即數(shù)2位位3位位 3位位 2位位 3位位3位位*20例例1指令格式如下所示,其中指令格式如下所示,其中OP為操作碼,試分析指令為操作碼,試分析指令格式的特點。格式的特點。15 9 8 7 4 3 0 op源寄存器源寄存器目標(biāo)寄存器目標(biāo)寄存器解: (1)單字長二地址指令。(2)操作碼字段OP可以指定128條指令。(3)源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指

10、定16個),所以是RR型指令,兩個操作數(shù)均在寄存器中。(4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運算類指令。 *21例例2 指令格式如下所示,指令格式如下所示,OP為操作碼字段,試分析指令格式特點為操作碼字段,試分析指令格式特點 解:(1)雙字長二地址指令,用于訪問存儲器。 (2)操作碼字段OP為6位,可以指定64種操作。(3)一個操作數(shù)在源寄存器(共16個),另一個操作數(shù)在存儲器中(由變址寄存器和位移量決定)所以是RS型指令。 op源寄存器源寄存器變址寄存器變址寄存器 位移量(位移量(16位)位)15 10 7 43 0 *22p在存儲器中,操作數(shù)或指令字寫入或讀出的方式,在存儲器中,操作數(shù)或指令字寫

11、入或讀出的方式,有有地址指定方式地址指定方式、相聯(lián)存儲方式相聯(lián)存儲方式和和堆棧存取方式。堆棧存取方式。p當(dāng)采用地址指定方式時,尋找指令或操作數(shù)有效當(dāng)采用地址指定方式時,尋找指令或操作數(shù)有效地址的方式地址的方式n指令尋址指令尋址F順序?qū)ぶ讽樞驅(qū)ぶ稦跳躍尋址跳躍尋址n操作數(shù)尋址操作數(shù)尋址*23p程序的指令序列在主存順序存放。程序執(zhí)行時從第一條指令開始,逐條取出并逐條執(zhí)行,這種程序的順序執(zhí)行過程,稱為順序?qū)ぶ贩绞健為了達(dá)到順序?qū)ぶ返哪康模珻PU中必須有一個程序計數(shù)器(PC)對指令的順序號進(jìn)行計數(shù)。PC中開始時存放程序的首地址,每執(zhí)行一條指令,PC 加1,以指出下條指令的地址,直到程序結(jié)束。pPC存

12、放下一條指令的地址*24p當(dāng)程序中出現(xiàn)分支或循環(huán)時,就會改變程序的執(zhí)行順序。此時對指令尋址就要采取跳躍尋址方式。p所謂跳躍,就是指下條指令的地址不是通過程序計數(shù)器PC當(dāng)前值獲得的,而是由指令本身給出。p跳躍的處理方式是重新修改PC的內(nèi)容。然后進(jìn)入取指令階段。*25IR100JMP 103MOV AX,BXJMP 103MOV AX,BX103*26p形成操作數(shù)有效地址的方法。n例如,一種單地址指令的結(jié)構(gòu)如下所示,其中用X,I,D各字段組成該指令的操作數(shù)地址。n尋址過程就是把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。n實際有效地址為E, 實際操作數(shù)Sn S= (E) OPXID*27p在在

13、指令中不明顯的給出而是隱含著操作數(shù)的地址指令中不明顯的給出而是隱含著操作數(shù)的地址p例如,單地址的指令格式,沒有在地址字段中指例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為作為第二操作數(shù)地址,第二操作數(shù)地址,AC對單地址指令格式來說是隱對單地址指令格式來說是隱含地址。含地址。*28p指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身p這種方式的特點是指令執(zhí)行時間很短,不需要訪問內(nèi)存取數(shù)這種方式的特點是指令執(zhí)行時間很短,不需要訪問內(nèi)存取數(shù)例如:單地址的移位指令格式為例如

14、:單地址的移位指令格式為OP(移位移位)FD這里這里D不是地址,而是一個操作數(shù)。不是地址,而是一個操作數(shù)。F為標(biāo)志為標(biāo)志位,當(dāng)位,當(dāng)F1,操作數(shù)進(jìn)行右移;當(dāng),操作數(shù)進(jìn)行右移;當(dāng)F0時,操作時,操作數(shù)進(jìn)行左移。數(shù)進(jìn)行左移。*29直接尋址特點是:直接尋址特點是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址存的地址D。 采用直接尋址方式時,指令字中的形式地址采用直接尋址方式時,指令字中的形式地址D就是操作數(shù)的就是操作數(shù)的有效地址有效地址E,既,既ED。因此通常把形式地址。因此通常把形式地址D又稱為直接地址。又稱為直接地址。此時,由尋址模式給予指示。此時,由

15、尋址模式給予指示。 如果用如果用S表示操作數(shù),那么直接尋表示操作數(shù),那么直接尋址的邏輯表達(dá)式為址的邏輯表達(dá)式為 S(E)()(D)*30間接尋址的情況下,間接尋址的情況下,指令地址字段中的形式地址指令地址字段中的形式地址D不是操作數(shù)的真正不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,地址,而是操作數(shù)地址的指示器,D單元的內(nèi)容才是操作數(shù)的有效地址單元的內(nèi)容才是操作數(shù)的有效地址 如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式:如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式:操作碼操作碼ID 尋址特征位尋址特征位I0,表示直接尋址,這時有效地址,表示直接尋址,這時有效地址ED; I1,表示間接尋

16、址,這時有效地址,表示間接尋址,這時有效地址E(D)。*31p寄存器尋址n操作數(shù)在CPU的內(nèi)部寄存器中.p寄存器間接尋址n指令格式中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中*32相對尋址是相對尋址是把程序計數(shù)器把程序計數(shù)器PC的內(nèi)容加上指令格式中的形式地的內(nèi)容加上指令格式中的形式地址址D而形成操作數(shù)的有效地址而形成操作數(shù)的有效地址。采用相對尋址方式的好處是程序員無須用指令的絕對地址編程采用相對尋址方式的好處是程序員無須用指令的絕對地址編程,所編程序可以放在內(nèi)存任何地方。,所編程序可以放在內(nèi)存任何地方。此時形式地址此時形式地址D通常稱為通常稱為偏移量偏移量,其值,其值

17、可正可負(fù)可正可負(fù),相對于當(dāng)前,相對于當(dāng)前指令地址進(jìn)行浮動。指令地址進(jìn)行浮動。*33 基址尋址方式是基址尋址方式是將將CPU中基址寄存器的內(nèi)容加上指令格中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址式中的形式地址而形成操作數(shù)的有效地址。 優(yōu)點是可以擴(kuò)大尋址能力。優(yōu)點是可以擴(kuò)大尋址能力。*34變址尋址方式變址尋址方式變址尋址方式與基址尋址方式計算有效地址的方法很相似,它變址尋址方式與基址尋址方式計算有效地址的方法很相似,它把把CPU中某個中某個變址寄存器的內(nèi)容與偏移量變址寄存器的內(nèi)容與偏移量D相加相加來形成操作數(shù)有效來形成操作數(shù)有效地址。地址。 但使用變址尋址方式的但使用變址尋址

18、方式的目的不在于擴(kuò)大尋址空間目的不在于擴(kuò)大尋址空間,而在于實而在于實現(xiàn)程序塊的現(xiàn)程序塊的規(guī)律性變化規(guī)律性變化。塊尋址方式塊尋址方式 塊尋址方式經(jīng)常用在輸入輸出指令中,以實現(xiàn)外存儲器或外圍塊尋址方式經(jīng)常用在輸入輸出指令中,以實現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送。塊尋址方式在內(nèi)存中還可用于數(shù)據(jù)設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送。塊尋址方式在內(nèi)存中還可用于數(shù)據(jù)塊搬家。塊搬家。 塊尋址時,通常在指令中指出數(shù)據(jù)塊的起始地址(首地址塊尋址時,通常在指令中指出數(shù)據(jù)塊的起始地址(首地址)和數(shù)據(jù)塊的長度(字?jǐn)?shù)或字節(jié)數(shù))。)和數(shù)據(jù)塊的長度(字?jǐn)?shù)或字節(jié)數(shù))。如果數(shù)據(jù)塊是變長的,可用三種方法指出它的長度:如果數(shù)據(jù)塊是

19、變長的,可用三種方法指出它的長度:(1)指令中劃出字段指出長度;指令中劃出字段指出長度;(2)指令格式中指出數(shù)據(jù)塊的首地址與末地址;指令格式中指出數(shù)據(jù)塊的首地址與末地址;(3)由塊結(jié)束字符指出數(shù)據(jù)塊長度。由塊結(jié)束字符指出數(shù)據(jù)塊長度。操作碼操作碼首地址首地址標(biāo)志位標(biāo)志位末地址末地址*35pIntel 8086/8088微機(jī)中,ALU16位運算,但其尋址范圍可到1M,即地址有20位。p實質(zhì)是基值尋址。4位16位邏輯地址16位段寄存器20位物理地址ALU*36例例3一種二地址一種二地址RS型指令的結(jié)構(gòu)如下所示:型指令的結(jié)構(gòu)如下所示: 6位位 4位位 1位位 2位位16位位其中其中I為間接尋址標(biāo)志位,

20、為間接尋址標(biāo)志位,X為尋址模式字段,為尋址模式字段,D位偏移量字段。通過位偏移量字段。通過I,X,D的的組合,可構(gòu)成下表所示的尋址方式。組合,可構(gòu)成下表所示的尋址方式。 請寫出六種尋址方式的名稱。請寫出六種尋址方式的名稱。解解:直接尋址直接尋址 相對尋址相對尋址 變址尋址變址尋址 寄存器間接尋址寄存器間接尋址 間接尋址間接尋址 基址尋址基址尋址 OPIX偏移量偏移量D*37例:某例:某1616位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個2020位位基址寄存器,四個基址寄存器,四個1616位變址寄存器,十六個位變址寄存器,十六個1616

21、位通用寄存器,指令匯編格位通用寄存器,指令匯編格式中的式中的S S和和D D都是指通用寄存器,都是指通用寄存器,M M指主存中的一個單元。三種指令的操作碼指主存中的一個單元。三種指令的操作碼分別是分別是MOVMOV為為0AH 0AH ,STASTA為為1BH 1BH ,LDALDA為為3CH3CH。(1)分析三種指令的指令格式與尋址方式特點)分析三種指令的指令格式與尋址方式特點。(2 2)CPUCPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎?種指令的執(zhí)行時間有時會等于第三種指

22、令的執(zhí)行時間嗎?(3 3)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?不正確,如何改正才能成為合法指令? LDA D LDA D,M M*38例:某例:某1616位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個2020位位基址寄存器,四個基址寄存器,四個1616位變址寄存器,十六個位變址寄存器,十六個1616位通用寄存器,指令匯編格位通用寄存器,指令匯編格式中的式中的S S和和D D都是指通用寄存器,都是指通用寄存器,M M指主

23、存中的一個單元。三種指令的操作碼指主存中的一個單元。三種指令的操作碼分別是分別是MOVMOV為為0AH 0AH ,STASTA為為1BH 1BH ,LDALDA為為3CH3CH。說明:說明:MOVMOV是傳送指令,是傳送指令,STASTA為寫數(shù)指令,為寫數(shù)指令,LDALDA為讀數(shù)指令。為讀數(shù)指令。(1)分析三種指令的指令格式與尋址方式特點)分析三種指令的指令格式與尋址方式特點。該指令是單字長二地址指令,是該指令是單字長二地址指令,是RRRR型,源寄存器型,源寄存器S S由由0 03 3位指定,目標(biāo)寄存位指定,目標(biāo)寄存器器D D由由4 47 7位指定位指定。該指令是雙字長二地址指令,是該指令是雙

24、字長二地址指令,是RSRS型,源寄存器型,源寄存器S S由由4 47 7位指定位指定,存儲器存儲器M M由采用由采用0 03 3位指定的變址寄存器加位移量的位指定的變址寄存器加位移量的變址方式變址方式得到或者由得到或者由89位指位指定的基址寄存器加位移量的定的基址寄存器加位移量的基址尋址基址尋址得到。得到。*39LDA DLDA D,M M該指令是雙字長二地址指令,該指令是雙字長二地址指令,RS型,其中目標(biāo)寄存器型,其中目標(biāo)寄存器D D由由4 47 7位指定,存儲位指定,存儲器由指令中給出的器由指令中給出的2020位地址由直接內(nèi)存尋址決定位地址由直接內(nèi)存尋址決定。(2 2)CPUCPU完成哪一

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

26、址寄存器內(nèi)容加位移量,這也需要時間。內(nèi)容加位移量,這也需要時間。n 第二種指令的執(zhí)行時間不會等于第三種指令,因為第三種指令也訪問存第二種指令的執(zhí)行時間不會等于第三種指令,因為第三種指令也訪問存儲器,但節(jié)省了求有效地址運算的時間開銷。儲器,但節(jié)省了求有效地址運算的時間開銷。*40(3 3)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼)下列情況下每個十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?不正確,如何改正才能成為合法指令? F0F13CD2H F0F13CD2H根據(jù)已知條件:根據(jù)已知條件: MOVMOV(OPOP)0AH0AH00 10100

27、0 1010 STA STA(OPOP)1BH1BH01 101101 1011 LDA LDA(OPOP)3CH3CH11 110011 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 00102856H2856H0010 1000 0101 01100010 1000 0101 0110編碼正確,其含義是把主存編碼正確,其含義是把主存

28、(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編碼錯誤,可改正為編碼錯誤,可改正為28D6H28D6H*4120050011002001005008001002002100OPXD=100PC=1000R基基=200

29、0 尋址方式尋址方式X操作數(shù)操作數(shù)立即立即0100直接直接1200間接間接2500相對相對3100變址變址4200變址間址變址間址5500有效地址有效地址ES=DE=D=100E=(D)=200E=PC+D=1100E=(R)+D=2100E=(R)+D)=200例:例:設(shè)某機(jī)的指令格式、有關(guān)寄存器和主存內(nèi)容如下,設(shè)某機(jī)的指令格式、有關(guān)寄存器和主存內(nèi)容如下,X為尋址方式,為尋址方式,D為形式地址,請在下表中填入有效地址為形式地址,請在下表中填入有效地址E及操作數(shù)的值及操作數(shù)的值。?*42p堆棧堆棧-一組能存取數(shù)據(jù)的暫時存儲單元。一組能存取數(shù)據(jù)的暫時存儲單元。n存儲器一般采用存儲器一般采用隨機(jī)存

30、儲方法隨機(jī)存儲方法,而堆棧采用,而堆棧采用先進(jìn)后出先進(jìn)后出的存儲方法的存儲方法p串聯(lián)堆棧串聯(lián)堆棧n一組專門的寄存器,一個一組專門的寄存器,一個R保存一個數(shù)據(jù)。保存一個數(shù)據(jù)。n數(shù)據(jù)的傳送在棧頂和通用寄存器之間進(jìn)行。數(shù)據(jù)的傳送在棧頂和通用寄存器之間進(jìn)行。n快速:在快速:在CPU內(nèi)部實現(xiàn)內(nèi)部實現(xiàn)n串行:進(jìn)棧和出棧涉及到棧內(nèi)所有其它數(shù)據(jù)的移動;串行:進(jìn)棧和出棧涉及到棧內(nèi)所有其它數(shù)據(jù)的移動;n破壞性讀出:讀數(shù)據(jù)的同時也離開了堆棧;破壞性讀出:讀數(shù)據(jù)的同時也離開了堆棧;n棧容量有限:取決于棧容量有限:取決于CPU內(nèi)堆棧專用寄存器的數(shù)量;內(nèi)堆棧專用寄存器的數(shù)量;n棧頂不動,數(shù)據(jù)移動。棧頂不動,數(shù)據(jù)移動。*4

31、3AA ABB BA ACC CB BA ACB BA A堆棧頂堆棧頂 PUSH A PUSH A PUSH B PUSH B PUSH C PUSH C POP C POP C通用寄存器通用寄存器*44p用一部分主存空間作堆棧稱為用一部分主存空間作堆棧稱為存儲器堆棧存儲器堆棧n堆棧的數(shù)目、長度可隨意指定堆棧的數(shù)目、長度可隨意指定nSP-堆棧指示器堆棧指示器(棧指針棧指針),CPU中一個專門寄存中一個專門寄存器,器,SP內(nèi)容是棧頂單元地址。改變內(nèi)容是棧頂單元地址。改變SP內(nèi)容即可移內(nèi)容即可移動棧頂?shù)奈恢谩訔m數(shù)奈恢谩堆棧操作期間,堆棧中數(shù)據(jù)不動,棧頂移動堆棧操作期間,堆棧中數(shù)據(jù)不動,棧頂移

32、動n非破壞性讀出非破壞性讀出*45p進(jìn)棧-累加器中的數(shù)送堆棧保存.p(AC) 堆棧MSP 堆棧指針(sp) 1 spaPUSH aPUSH aPUSH bPUSH b100999897SPabb*46p 出棧-將堆棧中的數(shù)取出送累加器p 堆棧指針(sp) 1 sp (堆棧MSP) AC100999897SPabba*471)存儲器堆棧是一個由高地址向低地址延伸的空間。)存儲器堆棧是一個由高地址向低地址延伸的空間。2)存儲器堆棧的棧頂由堆棧指針存儲器堆棧的棧頂由堆棧指針SPSP指示,如果用指示,如果用AA表示通用表示通用寄存器寄存器A A的內(nèi)容,的內(nèi)容,SPSP表示堆棧指示器,表示堆棧指示器,M

33、spMsp表示堆棧指示的存儲表示堆棧指示的存儲器棧頂單元器棧頂單元, ,入棧操作和出棧操作可以表示為:入棧操作和出棧操作可以表示為: 入棧:入棧:AMsp AMsp ,SPSP1SP1SP 出棧:出棧:SPSP1SP1SP,MspA MspA 存儲器堆棧的優(yōu)點:存儲器堆棧的優(yōu)點:1 1)堆棧能夠具有程序員要求的任意長度;)堆棧能夠具有程序員要求的任意長度;2 2)存儲器堆棧的數(shù)目由程序員自己決定;)存儲器堆棧的數(shù)目由程序員自己決定;3 3)可以用對存儲器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn))可以用對存儲器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn)行尋址。行尋址。*48p數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令n取數(shù)

34、指令取數(shù)指令n存數(shù)指令存數(shù)指令n傳送指令傳送指令p算術(shù)運算指令算術(shù)運算指令n定點,定點, n浮點,浮點, n求反,求補(bǔ),比較等求反,求補(bǔ),比較等n 成組傳送指令成組傳送指令n 字節(jié)交換指令字節(jié)交換指令n 清累加器指令清累加器指令n 堆棧操作指令堆棧操作指令*49p邏輯運算指令邏輯運算指令nNOT,AND,OR,XOR,TESTp程序控制指令程序控制指令n無條件轉(zhuǎn)移 條件轉(zhuǎn)移(C,Z,N,P,V)n轉(zhuǎn)子程序 子程序返回 RET 中斷返回 IRETp輸入輸出指令輸入輸出指令nIN AX,n OUT n, A*50p字符串處理字符串處理n字符串傳送、轉(zhuǎn)換、比較、查找字符串傳送、轉(zhuǎn)換、比較、查找p特權(quán)

35、指令特權(quán)指令:系統(tǒng)資源的分配和管理系統(tǒng)資源的分配和管理p其他類其他類n狀態(tài)寄存器置位、復(fù)位指令狀態(tài)寄存器置位、復(fù)位指令(如如CLC,STC,CLI,STI)n測試指令、暫停指令,空操作指令測試指令、暫停指令,空操作指令*51pCISC-CISC-復(fù)雜指令系統(tǒng)計算機(jī)復(fù)雜指令系統(tǒng)計算機(jī) nComplex Instruction System ComputerComplex Instruction System Computern指令數(shù)量多,指令功能,復(fù)雜的計算機(jī)。指令數(shù)量多,指令功能,復(fù)雜的計算機(jī)。p RISC-RISC-精簡指令系統(tǒng)計算機(jī)精簡指令系統(tǒng)計算機(jī)nReduced Instruction System ComputerReduced Instruction System Compu

溫馨提示

  • 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

提交評論