計(jì)算機(jī)組成原理第4章指令系統(tǒng)_第1頁
計(jì)算機(jī)組成原理第4章指令系統(tǒng)_第2頁
計(jì)算機(jī)組成原理第4章指令系統(tǒng)_第3頁
計(jì)算機(jī)組成原理第4章指令系統(tǒng)_第4頁
計(jì)算機(jī)組成原理第4章指令系統(tǒng)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 第四章 指令系統(tǒng) 4.1、指令系統(tǒng)的發(fā)展與性能要求 4.2、指令格式 4.3、指令和數(shù)據(jù)的尋址方式 4.4、堆棧尋址方式 4.5、典型指令 本章小結(jié)14.1、指令系統(tǒng)的發(fā)展和性能要求一、指令系統(tǒng)的發(fā)展二、對(duì)指令系統(tǒng)性能的要求三、低級(jí)語言與硬件結(jié)構(gòu)的關(guān)系2一、指令系統(tǒng)的發(fā)展一1.概念:(1)指令,機(jī)器指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令。每條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算。如加法操作ADD,相與操作AND等。(2)程序:由一系列機(jī)器指令組成,可完成某種機(jī)器指令的集合。(3)指令系統(tǒng):一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合。3例如: 機(jī)器語言 匯編語言 B233 MOV DL, 3 B402 M

2、OV AH, 02 CD21 INT 21H CD20 INT 20H 指令系統(tǒng)是我們?cè)O(shè)計(jì)程序,設(shè)計(jì)機(jī)器的依據(jù),是人機(jī)交互界面,人懂的是指令,機(jī)器懂的是二進(jìn)制代碼表示的機(jī)器指令。請(qǐng)看例子 4一、指令系統(tǒng)的發(fā)展二2、發(fā)展:50年代:指令系統(tǒng)只有定點(diǎn)加減、邏輯運(yùn)算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至幾十條指令。60年代后期:增加了乘除運(yùn)算、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算、字符串處理等指令,指令數(shù)目多達(dá)一二百條,尋址方式也趨多樣化。70年代末期:大多數(shù)計(jì)算機(jī)的指令系統(tǒng)多達(dá)幾百條。 出現(xiàn)了CISC和RISC。5a、CISC:70年代后,大多數(shù)計(jì)算機(jī)的指令系統(tǒng)多達(dá)幾百條。我們稱這些計(jì)算機(jī)為復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)。b、

3、RISC:但是如此龐大的指令系統(tǒng)難以保證正確性,不易調(diào)試維護(hù),造成硬件資源浪費(fèi)。為此人們又提出了便于LSI技術(shù)實(shí)現(xiàn)的精簡指令系統(tǒng)計(jì)算機(jī)(RISC) 返回6二、對(duì)指令系統(tǒng)性能的要求一1、完備性:用匯編語言編寫各種程序時(shí),指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。2、有效性:利用該指令系統(tǒng)所編寫的程序能夠高效率的運(yùn)行。高效率主要表現(xiàn)在程序占據(jù)存儲(chǔ)空間小、執(zhí)行速度快。一般來說,一個(gè)功能更強(qiáng)、更完善的指令系統(tǒng),必定有更好的有效性。7二、對(duì)指令系統(tǒng)性能的要求二3、規(guī)整性:包括指令系統(tǒng)的對(duì)稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。(1)對(duì)稱性指在指令系

4、統(tǒng)中所有的寄存器和存儲(chǔ)器單元都可同等對(duì)待,所有的指令都可使用各種尋址方式;(2)勻齊性是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型;(3)指令格式和數(shù)據(jù)格式的一致性是指指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。8二、對(duì)指令系統(tǒng)性能的要求三4、兼容性: 系列機(jī)各機(jī)種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機(jī)種上基本軟件可以通用。但由于不同機(jī)種推出的時(shí)間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機(jī)上運(yùn)行的軟件可以在高檔機(jī)上運(yùn)行。9三、低級(jí)語言與硬件結(jié)構(gòu)的關(guān)系 高級(jí)語言 低級(jí)語言Visual c+、foxpro、jav

5、a 匯編語言、二進(jìn)制語言與軟件結(jié)構(gòu)和指令系統(tǒng)無關(guān) 與機(jī)器、指令系統(tǒng)密切相關(guān) 編寫的程序可在不同機(jī)器上 編寫的指令系統(tǒng)不同,不同 運(yùn)行 機(jī)器用不同匯編語言編寫程 序,機(jī)器唯一可識(shí)別的是二 進(jìn)制機(jī)器語言104.2、 指令格式一、操作碼二、地址碼三、指令字長度四、指令助記符五、指令操作碼擴(kuò)展方法退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回章目錄11一、操作碼 1、指令字(簡稱指令)即表示一條指令的機(jī)器字。2、指令格式則是指令字用二進(jìn)制代碼表示的結(jié)構(gòu)形式,由操作碼字段和地址碼字段組成。(1)操作碼字段表征指令的操作特性與功能,它表示該指令應(yīng)進(jìn)行什么性質(zhì)的操作;操作碼字段 地址碼字段12不同指令有不同的

6、操作碼,操作碼用不同編碼實(shí)現(xiàn)。如: 00 ADD 01 SUB 10 LDA 11 STR操作碼的位數(shù)決定于指令系統(tǒng)規(guī)模,設(shè)指令系統(tǒng)共有N條指令,則操行碼位數(shù)n位,滿足公式N=2n 。(2)地址碼字段通常指定參與操作的操作數(shù) 的地址。 如:001 1100 ADD BX13二、地址碼一1、一條指令中有幾個(gè)操作數(shù)地址,可將該指令稱為幾地址指令。一般的操作數(shù)有被操作數(shù)、操作數(shù)及操作結(jié)果這三種數(shù),因而最基本格式是三地址指令格式。 三地址指令 (A1)OP(A2) A3 二地址指令 (A1)OP(A2) A1操作碼 1 一地址指令 (AC)OP(A1) AC操作碼 1 2 3操作碼 1 214二、地址

7、碼二操作碼 零地址指令 不需要地址的指令(操作數(shù)),如停機(jī)指令注:a、上述的A1、A2、A3均可指內(nèi)存地址或通用 寄存器地址;b、op表示操作數(shù)性質(zhì),如加、減、乖、除等。2、按操作數(shù)所在物理位置,可有三種類型指令:(1)SS型指令,操作結(jié)果、操作數(shù)都放在內(nèi)存;(2)RR型指令,操作結(jié)果、操作數(shù)都放在寄存器;(3)RS型指令,訪問同存又訪問寄存器。15三、指令字長度一1、指令字長度:一個(gè)指令字中包含二進(jìn)制代碼的位數(shù)。2、機(jī)器字長:計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計(jì)算機(jī)的運(yùn)算精度。如pentium pc處理64位機(jī)器字長數(shù)據(jù),486處理32位機(jī)器字長數(shù)據(jù)。3.一般用機(jī)器字長來描述指令字

8、的長度。例如:請(qǐng)看例子16 例如:機(jī)器字長64位,若指令字長32位,則指令為半字長指令; 若指令字長64位,則指令為單字長指令; 若指令字長128位,則指令為雙字長指令; 若指令字長96位,則指令為1個(gè)半字長指令。 返回17三、指令字長度二3. 等長指令字結(jié)構(gòu):各種指令字長度是相等的。這種指令字結(jié)構(gòu)簡單,且指令字長度是不變的。4. 變長指令字結(jié)構(gòu):各種指令字長度隨指令功能而異。結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復(fù)雜。 退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄18四、指令助記符1. 指令助記符:為了便于書寫和閱讀程序,每條指令通常用3個(gè)或4個(gè)英文縮寫字母來表示,這種縮寫碼叫做

9、指令助記符。2. 例如:我們假定指令系統(tǒng)只有7條指令,所以操作碼只需3位二進(jìn)制。且對(duì)應(yīng)7條指令助記符:請(qǐng)看圖表19典型指令助記符: 典 型 指 令 指令助記符 二進(jìn)制操作碼 加法 ADD 001 減法 SUB 010 傳送 MOV 011 跳轉(zhuǎn) JMP 100 轉(zhuǎn)子 JSR 101 存儲(chǔ) STR 110 讀數(shù) LDA 111 返回20五、指令操作碼擴(kuò)展方法一1. 操作碼編碼方法:(1)固定編碼:即所有指令操作碼長度固定,N=2(2)可變編碼:操作碼長度可變,有些2位,有些3位等。例如: 固定編碼 可變編碼00 ADD 00 ADD01 SUB 01 SUB10 LDA 110 STR11 ST

10、A 111 HLT 退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄 n21五、指令操作碼擴(kuò)展方法二2. 操作碼擴(kuò)展方法 通常在指令字中一個(gè)固定長度的字段表示基本操作碼,而對(duì)于一部分不需要某個(gè)地址碼的指令,可將操作碼擴(kuò)充到地址碼字段。 例如:設(shè)指令基本操作碼字段為4位,兩個(gè)地址碼字段均可為6位,指令字長共16位。 15 12 11 6 5 0 OP A1 A222擴(kuò)展方法:1、二地址指令只用15條編碼00001110。余下1111編碼用于擴(kuò)展操作碼到A1,形成單地址指令。2、單地址指令操作碼用1111 0000 001111 1111 10表示,共2 6 -1條指令。余下1111 1111

11、11用于擴(kuò)展到操作碼A2,形成零地址指令。3、零地址指令操作碼用 1111 1111 1100 00001111 1111 1111 1111表示,共 2 6 條指令。 返回234.3、指令和數(shù)據(jù)的尋址方式一、指令的尋址方式二、操作數(shù)尋址方式三、尋址方式舉例退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回章目錄24一、指令的尋址方式一1、尋址方式:形成操作數(shù)有效地址或指令有效(偏移)地址的方式。2、尋址方式分為兩類,既指令尋址方式和數(shù)據(jù)尋址方式。3、指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞?,另?種是跳躍尋址方式。4、操作數(shù)或指令在存儲(chǔ)器中的地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí),其存儲(chǔ)單

12、元的編號(hào)就是地址。請(qǐng)看圖示退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄25 地址 內(nèi)存 0 LDA 700 1 ADD 102 2 STR 300 3 56 4 78 返回265、指令尋址方式二順序?qū)ぶ贩绞?(1)從存儲(chǔ)器取出第一條指令,然后執(zhí)行這條指令;接著從存儲(chǔ)器取出第二條指令,在執(zhí)行第二條指令;接著再取出第三條指令這種程序順序執(zhí)行的過程,我們稱為指令的順序?qū)ぶ贩绞健?(2)使用程序計(jì)數(shù)器(又稱指令指針寄存器)PC來計(jì)數(shù)指令的順序號(hào),該順序號(hào)就是指令在內(nèi)存中的地址。 (3)請(qǐng)看順序?qū)ぶ贩绞降膭?dòng)態(tài)演示:27一、指令的尋址方式三退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄6、跳躍尋

13、址方式 所謂跳躍,是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令給出。程序跳躍后,按新的指令地址開始順序執(zhí)行。指令計(jì)數(shù)器的內(nèi)容也必須相應(yīng)改變,以便及時(shí)跟蹤新的指令地址。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實(shí)現(xiàn)指令的跳躍尋址而設(shè)置的。28二、操作數(shù)尋址方式一 在指令中不明顯的給出而是隱含著操作數(shù)的地址。例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對(duì)單地址指令格式來說是隱含地址。退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄29二、操作數(shù)尋址方式二 指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身。特點(diǎn):

14、是指令執(zhí)行時(shí)間很短,不需要訪問內(nèi)存取數(shù)。例如:單地址的移位指令格式為 OP(移位)FD 這里D不是地址,而是一個(gè)操作數(shù)。F為標(biāo)志位,當(dāng)F1,操作數(shù)進(jìn)行右移;當(dāng)F0時(shí),操作數(shù)進(jìn)行左移。退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄30二、操作數(shù)尋址方式三 直接尋址特點(diǎn):在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。 采用直接尋址方式時(shí),指令字中的形式地址D就是操作數(shù)的有效地址E,既ED。因此通常把形式地址D又稱為直接地址。此時(shí),由尋址模式給予指示。 如果用S表示操作數(shù),那么直接尋址的邏輯表達(dá)式為S(E)(D) 請(qǐng)看直接尋址方式的動(dòng)態(tài)演示:退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目

15、錄31二、操作數(shù)尋址方式四 間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,D單元的內(nèi)容才是操作數(shù)的有效地址。 如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式: 操作碼ID 尋址特征位I0,表示直接尋址,這時(shí)有效地址ED;I1,表示間接尋址,這時(shí)有效地址E(D)。 請(qǐng)看間接尋址方式的動(dòng)態(tài)演示:退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄32二、操作數(shù)尋址方式五(1)當(dāng)操作數(shù)不放在內(nèi)存中,而是放在CPU的通用寄存器中時(shí),可采用寄存器尋址方式。此時(shí)指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號(hào),而是通用寄存器的編號(hào)。退 出 上一頁 下一頁 上一節(jié) 下一

16、節(jié) 返回節(jié)目錄(2)寄存器間接尋址方式與寄存器尋址方式的區(qū)別在于:指令格式中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中。33二. 操作數(shù)尋址方式六采用相對(duì)尋址方式的好處是程序員無須用指令的絕對(duì)地址編程,所編程序可以放在內(nèi)存任何地方。此時(shí)形式地址D通常稱為偏移量,其值可正可負(fù),相對(duì)于當(dāng)前指令地址進(jìn)行浮動(dòng)。34二、操作數(shù)尋址方式七 基址尋址方式是將CPU中基址寄存器BX、BP的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。它的優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長,從而可以在較大的存儲(chǔ)空間中尋址。 請(qǐng)看基址尋址方式的動(dòng)態(tài)演示:退 出

17、上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄35二、操作數(shù)尋址方式八 變址尋址方式與基址尋址方式計(jì)算有效地址的方法很相似,它把CPU中某個(gè)變址寄存器SI、DI的內(nèi)容與偏移量D相加來形成操作數(shù)有效地址。 但使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律性變化。退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄36二、操作數(shù)尋址方式九 (1)塊尋址方式經(jīng)常用在輸入輸出指令中,以實(shí)現(xiàn)外存儲(chǔ)器或外圍設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送。塊尋址方式在內(nèi)存中還可用于數(shù)據(jù)塊搬家。塊尋址時(shí),通常在指令中指出數(shù)據(jù)塊的起始地址(首地址)和數(shù)據(jù)塊的長度(字?jǐn)?shù)或字節(jié)數(shù))。(2)如果數(shù)據(jù)塊是變長的,可用三種方法指

18、出它的長度:指令中劃出字段指出長度;指令格式中指出數(shù)據(jù)塊的首地址與末地址;由塊結(jié)束字符指出數(shù)據(jù)塊長度。 操作碼首地址標(biāo)志位末地址退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄37二、操作數(shù)尋址方式十 微型機(jī)中采用了段尋址方式,例如它們可以給定一個(gè)20位的地址,從而有1M存儲(chǔ)空間的直接尋址能力。為此將整個(gè)1M空間存儲(chǔ)器以64K為單位劃分成若干段。在尋址一個(gè)內(nèi)存具體單元時(shí),由一個(gè)基地址再加上某些寄存器提供的16位偏移量來形成實(shí)際的20位物理地址。這個(gè)基地址就是CPU中的段寄存器。在形成20位物理地址時(shí),段寄存器中的16位數(shù)會(huì)自動(dòng)左移4位,然后以16位偏移量相加,即可形成所需的內(nèi)存地址。請(qǐng)看段尋

19、址方式的動(dòng)態(tài)演示:退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄38三、尋址方式舉例一1、PDP/11系列機(jī)尋址方式雙操作數(shù)指令如下:151211109876543210操作碼尋址方式寄存器號(hào)尋址方式 寄存器號(hào) | 2、PDP/11系列機(jī)尋址方式表退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄39三、尋址方式舉例二3.pentium的尋址方式 pentium的外部地址總線寬度是36位,但它也支持32位物理地址空間。 在實(shí)地址模式下,邏輯地址形式為段尋址方式:將段名所指定的段寄存器內(nèi)容(16位)左移4位,低4位補(bǔ)全0,得到20位段基地址,再加上16位段內(nèi)偏移,即得20位物理地址。 在保護(hù)

20、模式下,32位段基地址加上段內(nèi)偏移得到32位線性地址。由存儲(chǔ)管理部件將其轉(zhuǎn)換成32位的物理地址。 退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄40三、尋址方式舉例三4、pentium的尋址方式表退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄41三、尋址方式舉例四5、關(guān)于pentium的尋址方式的幾點(diǎn)說明:立即數(shù)可以是8位,16位,32位。寄存器地址:一般指令或使用8位通用寄存器,或使用16位通用寄存器,或使用32位通用寄存器。對(duì)64位浮點(diǎn)數(shù)操作,要使用一對(duì)32位寄存器。少數(shù)指令以段寄存器來實(shí)施寄存器尋址方式。直接尋址:也稱偏移量尋址方式,偏移量長度可以是8位,16位,32位?;穼ぶ?/p>

21、:基址寄存器B可以是上述通用寄存器中任何一個(gè)。基址寄存器B的內(nèi)容為有效地址。退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄42基址偏移量尋址:基址寄存器B是32位通用寄存器中任何一個(gè)。比例地址偏移量尋址:也稱為變址尋址方式,變址寄存器I是32位通用寄存器中除ESP外的任何一個(gè),而且可將此變址寄存器內(nèi)容乘以1,2,4或8的比例因子S,然后再加上偏移量而得到有效地址。,兩種尋址方式是,兩種尋址方式的組合,此時(shí)偏移量可有可無。相對(duì)尋址:適用于轉(zhuǎn)移控制類指令。用當(dāng)前指令指針寄存器EIP或IP的內(nèi)容(下一條指令地址)加上一個(gè)有符號(hào)的偏移量,形成CS段的段內(nèi)偏移。三、尋址方式舉例四退 出 上一頁 下一

22、頁 上一節(jié) 下一節(jié) 返回節(jié)目錄43三、尋址方式舉例五答案:退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄例3一種二地址RS型指令的結(jié)構(gòu)如下所示:其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過I,X,D的組合,可構(gòu)成下表所示的尋址方式。 請(qǐng)寫出六種尋址方式的名稱。44例三答案:直接尋址相對(duì)尋址 變址尋址寄存器間接尋址 間接尋址基址尋址 返回45三、尋址方式舉例六 例4 某16位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個(gè)20位基址寄存器,四個(gè)16位變址寄存器,十六個(gè)16位通用寄存器指令匯編格式中的S(源),D(目標(biāo))都是通用寄存器,M是主存中的一個(gè)單元。三種指令的操作碼

23、分別是MOV(OP)(A)H ,STA(OP)(1B)H ,LDA(OP)(3C)H。MOV是傳送指令,STA為寫數(shù)指令,LDA為讀數(shù)指令。46三、尋址方式舉例六要求: 分析三種指令的指令格式與尋址方式特點(diǎn)。 CPU完成哪一種操作所花時(shí)間最短?哪一種操作所花時(shí)間最長?第二種指令的執(zhí)行時(shí)間有時(shí)會(huì)等于第三種指令的執(zhí)行時(shí)間嗎? 下列情況下每個(gè)十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?(F0F1)H (3CD2)H (2856)H (6FD6)H (1C2)H 答案:退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄47例四答案一:第一種指令是單字長二地址指令,R

24、R型;第二種指令是雙字長二地址指令,RS型,其中S采用基址尋址或變址尋址,R由源寄存器決定;第三種也是雙字長二地址指令,RS型,其中R由目標(biāo)寄存器決定,S由20位地址(直接尋址)決定。 處理機(jī)完成第一種指令所花時(shí)間最短,因?yàn)槭荝R型指令,不需要訪問存儲(chǔ)器。第二種指令所花時(shí)間最長,因?yàn)槭荝S型指令,需要訪問存儲(chǔ)器,同時(shí)要進(jìn)行尋址方式的變換運(yùn)算(基址或變址),這也需要時(shí)間。第二種指令的執(zhí)行時(shí)間不會(huì)等于第三種指令,因?yàn)榈谌N指令雖然也訪問存儲(chǔ)器,但節(jié)省了求有效地址運(yùn)算的時(shí)間開銷。 繼續(xù) 返回48例四答案二:根據(jù)已知條件:MOV(OP)001010,STA(OP)011011,LDA(OP)11110

25、0,將指令的十六進(jìn)制格式轉(zhuǎn)換成二進(jìn)制代碼且比較后可知:(F0F1)H (3CD2)H 指令代表LDA指令,編碼正確,其含義是把主存(13CD2)H 地址單元的內(nèi)容取至15號(hào)寄存器。(2856)H 指令代表MOV指令,編碼正確,含義是把6號(hào)源寄存器的內(nèi)容傳送至5號(hào)目標(biāo)寄存器。 (6FD6)H 是單字長指令,一定是MOV指令,但編碼錯(cuò)誤,可改正為(28D6)H(1C2)H 是單字長指令,代表MOV指令,但編碼錯(cuò)誤,可改正為(28C2)H 。 49返回504.4、 堆棧尋址方式一、串聯(lián)堆棧二、存儲(chǔ)器堆棧退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回章目錄51一、串聯(lián)堆棧1、堆棧是一組能存儲(chǔ)和取出數(shù)據(jù)的

26、暫時(shí)存儲(chǔ)單元,它遵循“先進(jìn)后出”的存取原則。2、串聯(lián)堆棧:一些計(jì)算機(jī)的CPU中有一組專門的寄存器,有16個(gè)或更多,它們稱為串聯(lián)堆棧。3、串聯(lián)堆棧的特點(diǎn):每當(dāng)一個(gè)新數(shù)入棧,則數(shù)據(jù)串聯(lián)向下移動(dòng),留出棧頂給新數(shù);每當(dāng)棧頂數(shù)出棧送到累加器,則數(shù)據(jù)串聯(lián)向上移動(dòng),填補(bǔ)棧頂空位。4、請(qǐng)看串聯(lián)堆?!斑M(jìn)?!?、“出?!毖菔荆和?出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄524.4 堆棧尋址方式一.串聯(lián)堆棧1.串聯(lián)堆棧:由CPU中一組專門的寄存器構(gòu)成,把通用寄存器的內(nèi)容暫存于它。2.進(jìn)棧出棧操作:“后進(jìn)先出”原則。進(jìn)棧時(shí):通用寄存器和堆棧的頂部單元(棧頂)聯(lián)系,數(shù)據(jù)相對(duì)于棧頂向下移動(dòng)。出棧時(shí):數(shù)據(jù)數(shù)據(jù)相對(duì)于棧頂

27、向上移動(dòng)。3.特點(diǎn):串聯(lián)堆棧的寄存器個(gè)數(shù)有限,因此老的數(shù)據(jù)容易從棧底壓出丟失;堆棧的讀出是破壞性的。53二.存儲(chǔ)器堆棧1.存儲(chǔ)器堆棧:用主存儲(chǔ)器的一部分作為堆棧,需要使用一個(gè)指示堆棧棧頂?shù)亩褩V甘酒鳎⊿P)。2.進(jìn)棧出棧操作:先進(jìn)后出原則,數(shù)據(jù)不移動(dòng),而是堆棧頂部(SP)相對(duì)于數(shù)據(jù)進(jìn)行移動(dòng)。進(jìn)棧:寄存器中數(shù)入棧, (SP)-1 SP出棧:(SP)+1 SP, 取堆棧中的數(shù) 寄存器演示544.5、 典型指令一、指令的分類二、精簡指令系統(tǒng)退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回章目錄55一、指令的分類一1、數(shù)據(jù)傳送指令: 數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換

28、指令、清累加器指令、堆棧操作指令等等。這類指令主要用來實(shí)現(xiàn)主存和寄存器之間,或寄存器和寄存器之間的數(shù)據(jù)傳送。例如:LDA Ri,ADDR;取數(shù) Ri CLA; 清零AC,0 AC STA ADDR,Ri;Ri ADDR單元中存數(shù)退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄 56一、指令的分類二2、算術(shù)運(yùn)算指令 這類指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。例如:加, ADD Ri,Rj;(Ri)+(Rj) Ri 減, SUB Ri,Rj;(Ri)-(Rj) Ri 比較,CMP Ri,Rj;(Ri)-(

29、Rj) 加1, INC Ri;(Ri)+1 Ri 求反,COM Ri;(Ri) Ri 求補(bǔ),NEG Ri;(Ri)+1 Ri 減1, DEG Ri;(Ri)-1 Ri57一、指令的分類三3、邏輯運(yùn)算指令一 這類指令包括邏輯加、邏輯乘、按位加、邏輯移位等指令。例如:AND Ri,Rj;邏輯乘(Ri)(Rj) Ri ORA Ri,Rj;邏輯加(Ri)(Rj) Ri ASL Ri,1; 算術(shù)左移 Ri ASR Ri,1; 算術(shù)右移 Ri58一、指令的分類三 3、邏輯運(yùn)算指令二 EOR Ri,Rj;按位加(Ri)+(Rj) Ri ROL Ri,1; 循環(huán)左移 Ri ROR Ri,1; 循環(huán)右移Ri L

30、SR Ri,1; 邏輯右移 0 Ri LSL Ri,1; 邏輯左移 Ri 059一、指令的分類四4、程序控制指令(1)程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時(shí),有時(shí)機(jī)器執(zhí)行到某條指令時(shí),出現(xiàn)了幾種不同結(jié)果,這時(shí)機(jī)器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。(2)除各種條件轉(zhuǎn)移指令外,還有無條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。 (3)請(qǐng)看例子退 出 上一頁 下一頁 上一節(jié) 下一節(jié) 返回節(jié)目錄 60例如:SMP ADDR; 無條件轉(zhuǎn)移BMI ADDR; 結(jié)果為負(fù),即N=1時(shí)轉(zhuǎn)BCS ADDR; 進(jìn)位轉(zhuǎn)C=1時(shí)轉(zhuǎn)BEQ ADDR; 結(jié)果為零,即Z=1時(shí)轉(zhuǎn)BVS ADDR; 結(jié)果溢出,即V=1時(shí)轉(zhuǎn)CALL A ; 轉(zhuǎn)主程RE

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論