[工學(xué)]第四章指令系統(tǒng)_第1頁
[工學(xué)]第四章指令系統(tǒng)_第2頁
[工學(xué)]第四章指令系統(tǒng)_第3頁
[工學(xué)]第四章指令系統(tǒng)_第4頁
[工學(xué)]第四章指令系統(tǒng)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、.第四章 指令系統(tǒng)一、本章主要內(nèi)容內(nèi) 容要 求指令格式(含定長操作碼指令格式和擴(kuò)展操作碼指令格式)*尋址方式(數(shù)據(jù)尋址和指令尋址,常見尋址方式的特點(diǎn)和表示方法)*CISC和RISC的基本概念*二、知識(shí)結(jié)構(gòu)尋址方式存儲(chǔ)器尋址定長操作碼不定長操作碼操作碼指令格式操作數(shù)操作數(shù)的個(gè)數(shù)立即數(shù)尋址直接尋址間接尋址寄存器間接尋址變址尋址寄存器尋址系統(tǒng)尋址基址尋址 三、具體內(nèi)容介紹(一) 指令格式1. 指令的基本格式:機(jī)器內(nèi)部的指令格式由兩大字段組成,操作碼和操作數(shù);l 操作碼規(guī)定本條指令所要進(jìn)行的操作或完成的功能;l 操作數(shù)字段給出本條指令操作的數(shù)據(jù)對(duì)象以及下一條將要執(zhí)行的指令的地址,操作數(shù)字段有可能包含尋

2、址方式字段。l 指令系統(tǒng)中各指令的長度可以相同,也可以不同,一般取機(jī)器字長的倍數(shù)。操作碼 尋址1 數(shù)1 尋址I 數(shù)i 尋址n 數(shù)n2. 定長操作碼指令格式:所有指令的操作碼位數(shù)相同。重點(diǎn)掌握內(nèi)容:操作碼位數(shù)和指令總統(tǒng)所含指令條數(shù)的關(guān)系。n位操作碼,指令系統(tǒng)最多2n條指令;反之,指令系統(tǒng)有n條指令,至少log2n位操作碼。3. 擴(kuò)展操作碼指令格式在高級(jí)語言中,各語句的使用頻率相差較大,比如C語言中,goto語句是限制使用的,一般程序不會(huì)使用goto語句,而幾乎所有的程序都需要多次使用賦值語句。同樣,指令系統(tǒng)中各條指令的使用頻率也不一定相同,定長操作碼指令給所有指令分配相同位數(shù)的操作碼,使得極少使

3、用的指令和經(jīng)常使用的指令具有相同位數(shù)的操作碼,對(duì)操作碼的譯碼效率會(huì)產(chǎn)生影響。擴(kuò)展操作碼指令格式將根據(jù)指令的使用頻率不同,分配不同位數(shù)的操作碼,以提高指令系統(tǒng)的整體譯碼速度。比如使用頻率高的指令操作碼位數(shù)較短,使用頻率低的指令操作碼位數(shù)長一些。二 指令的尋址方式指令的尋址方式指確定本條指令中所有操作數(shù)的地址以及下一條將要執(zhí)行的指令的地址的方法。1. 形式地址和有效地址通常,指令中的操作數(shù)的位置有:指令中、內(nèi)存中、CPU的寄存器中或者I/O接口中,所以指令中的操作數(shù)字段提供的值稱為形式地址,把按照約定的尋址方式計(jì)算得到的地址稱為有效地址。2. 數(shù)據(jù)尋址及常見尋址方式數(shù)據(jù)尋址:確定本條指令中所有操作

4、數(shù)的地址,即尋找指令將要操作的數(shù)據(jù)的方法,常見數(shù)據(jù)尋址方式如下所示: 立即數(shù)尋址:指令的操作數(shù)字段給出的是操作數(shù)本身(操作數(shù)在指令中)。這是最簡單最直接的尋址方式,執(zhí)行指令時(shí),數(shù)據(jù)隨指令由內(nèi)存讀入CPU。 優(yōu)點(diǎn):簡單、明確、速度快 缺點(diǎn):由于操作數(shù)字段的位數(shù)是有限的,所以立即數(shù)表示數(shù)的范圍也是有限的。比如每個(gè)操作數(shù)占6位,則無符號(hào)數(shù)的表數(shù)范圍是0-63,有符號(hào)數(shù)的表數(shù)范圍是-32-+31。所以立即數(shù)尋址方式只適合操作數(shù)較小的情況,大一些的操作數(shù)無法應(yīng)用。直接尋址:操作數(shù)在內(nèi)存,指令的操作數(shù)字段給出的是操作數(shù)的內(nèi)存地址。執(zhí)行指令時(shí),指令由內(nèi)存讀入CPU后,再按照直接尋址字段給出操作數(shù)的內(nèi)存地址讀

5、一次內(nèi)存,即可將數(shù)據(jù)從內(nèi)存讀入CPU。 優(yōu)點(diǎn):由于操作數(shù)在內(nèi)存,操作數(shù)所占的內(nèi)存單元數(shù)由數(shù)據(jù)的類型決定,所以數(shù)據(jù)的范圍可以較大。比如操作數(shù)字段占6位,對(duì)應(yīng)數(shù)據(jù)為16位,則無符號(hào)數(shù)的表數(shù)范圍是0-65535,有符號(hào)數(shù)的表數(shù)范圍是-32768-+32767。 缺點(diǎn):由于操作數(shù)字段的位數(shù)是有限的,所以操作數(shù)可存放的內(nèi)存地址的范圍也是有限的。比如每個(gè)操作數(shù)占6位,操作數(shù)只可在0-63內(nèi)存單元存放。所以直接尋址中操作數(shù)的存放位置有限,可定義的操作數(shù)的個(gè)數(shù)就受限。間接尋址:操作數(shù)在內(nèi)存,指令的操作數(shù)字段給出的是操作數(shù)的內(nèi)存地址所存放的內(nèi)存單元地址,即操作數(shù)字段給出的是操作數(shù)的地址的地址。執(zhí)行指令時(shí),指令由

6、內(nèi)存讀入CPU后,再按照間接尋址字段給出操作數(shù)的內(nèi)存地址的內(nèi)存地址讀一次內(nèi)存,可得到操作數(shù)的內(nèi)存地址,按照這個(gè)地址再讀一次內(nèi)存,即將數(shù)據(jù)從內(nèi)存讀入CPU。 優(yōu)點(diǎn):由于操作數(shù)在內(nèi)存,操作數(shù)所占的內(nèi)存單元數(shù)由數(shù)據(jù)的類型決定,所以數(shù)據(jù)的內(nèi)存地址以及范圍可以較大。比如操作數(shù)字段占6位,內(nèi)存單元均以16位為單位讀寫,則對(duì)應(yīng)操作數(shù)的內(nèi)存地址占16位,則操作數(shù)的可存放地址范圍是065535;對(duì)應(yīng)操作數(shù)占16位,則無符號(hào)數(shù)的表數(shù)范圍是0-65535,有符號(hào)數(shù)的表數(shù)范圍是-32768-+32767。 缺點(diǎn):首先由于操作數(shù)字段的位數(shù)是有限的,所以操作數(shù)的地址可存放的內(nèi)存地址的范圍也是有限的。比如每個(gè)操作數(shù)占6位,

7、操作數(shù)的地址只可在0-63內(nèi)存單元存放。其次讀寫操作數(shù)需要兩次讀寫內(nèi)存,速度較慢。寄存器尋址:操作數(shù)在CPU內(nèi)的寄存器中,指令的操作數(shù)字段給出的是相應(yīng)寄存器的編號(hào)。執(zhí)行指令時(shí),指令由內(nèi)存讀入CPU后,可直接按照寄存器編號(hào)讀寄存器,讀出內(nèi)容即為本條指令需要的操作數(shù)。 優(yōu)點(diǎn):由于操作數(shù)在CPU中,取數(shù)速度較快。 由于CPU中寄存器的數(shù)量是有限的,所以需要的寄存器編號(hào)也較短,可以有效減少操作數(shù)字段的位數(shù)。 缺點(diǎn):由于CPU中寄存器的數(shù)量是有限的,所以同時(shí)進(jìn)行寄存器尋址的操作數(shù)個(gè)數(shù)是有限的,一旦超出,只能通過其他方式使用,比如將暫時(shí)不用的寄存器內(nèi)容入棧保存,需要時(shí)再出棧使用。寄存器間接尋址:操作數(shù)在內(nèi)

8、存,操作數(shù)的內(nèi)存地址在CPU內(nèi)的寄存器中,指令的操作數(shù)字段給出的是相應(yīng)寄存器的編號(hào)。執(zhí)行指令時(shí),指令由內(nèi)存讀入CPU后,可直接按照寄存器編號(hào)讀寄存器,讀出內(nèi)容即為本條指令所需要的操作數(shù)的內(nèi)存地址;再按照讀出的內(nèi)存地址讀內(nèi)存,即可讀出本條指令所需要的操作數(shù)。 優(yōu)點(diǎn):由于操作數(shù)的地址在CPU中,獲得操作數(shù)內(nèi)存地址的速度較快。 由于CPU中寄存器的數(shù)量是有限的,所以需要的寄存器編號(hào)也較短,可以有效減少操作數(shù)字段的位數(shù)。 缺點(diǎn):由于CPU中寄存器的數(shù)量是有限的,所以同時(shí)進(jìn)行寄存器間接尋址的操作數(shù)個(gè)數(shù)是有限的,一旦超出,只能通過其他方式使用,比如將暫時(shí)不用的寄存器內(nèi)容入棧保存,需要時(shí)再出棧使用;由于讀操

9、作數(shù)需要訪問內(nèi)存一次,速度較寄存器尋址較慢。變址尋址:操作數(shù)在內(nèi)存,操作數(shù)的內(nèi)存地址由CPU內(nèi)的變址寄存器的內(nèi)容和指令中給出的偏移量求和得到。執(zhí)行指令時(shí),指令由內(nèi)存讀入CPU后,可直接按照變址寄存器編號(hào)讀寄存器,讀出內(nèi)容和指令中的偏移量求和即為本條指令所需要的操作數(shù)的內(nèi)存地址;再按照計(jì)算出的內(nèi)存地址讀內(nèi)存,即可讀出本條指令所需要的操作數(shù)。 優(yōu)點(diǎn):一般將數(shù)組首地址放入指令的操作數(shù)字段,變址寄存器用來提供下標(biāo),在循環(huán)體中順序修改變址寄存器的值,可實(shí)現(xiàn)數(shù)組功能。 缺點(diǎn):由于操作數(shù)地址需要計(jì)算得到,速度較慢。 特點(diǎn):讀寫一次內(nèi)存可完成操作。3. 指令尋址及常見尋址方式相對(duì)尋址:下一條將要執(zhí)行的指令所在

10、的內(nèi)存地址由CPU內(nèi)的PC寄存器的內(nèi)容(直接用或加1后使用)和指令中給出的偏移量求和得到,注意偏移量為有符號(hào)數(shù),補(bǔ)碼表示。 特點(diǎn):可實(shí)現(xiàn)循環(huán)和選擇結(jié)構(gòu)。4. 其他常見尋址方式基址尋址:操作數(shù)或指令的內(nèi)存地址由CPU內(nèi)的基址寄存器的內(nèi)容左移n位(乘2n)和指令中給出的偏移量求和得到。比如8086/8088中,四個(gè)段寄存器CS、DS、SS和ES均為基址寄存器,所有指令地址由(CS)*16+(PC)得到;所有數(shù)據(jù)段的地址由(DS)*16+指令中給出的偏移量得到;所有附加段的地址由(ES)*16+指令中給出的偏移量得到;所有堆棧段的地址由(SS)*16+(SP)或(SS)*16+(BP)得到。 特點(diǎn):

11、一般用來擴(kuò)大尋址空間。4操作數(shù)的個(gè)數(shù)指令中的操作數(shù)個(gè)數(shù)一般有0-3個(gè),多于三個(gè)的操作數(shù)可以轉(zhuǎn)換為四類中的一類。零操作數(shù)指令:指令中無操作數(shù)字段??赡苤噶畈恍枰僮鲾?shù),比如停機(jī)指令hlt,也可能指令中的操作數(shù)隱含在特殊寄存器、堆?;蚶奂悠髦小R坏刂分噶睿褐噶钪邪粋€(gè)操作數(shù)字段??赡苤噶钪恍枰粋€(gè)操作數(shù),也可能其他操作數(shù)隱含在特殊寄存器、堆?;蚶奂悠髦?。二地址指令:指令中包含兩個(gè)操作數(shù)字段,一般其中的一個(gè)操作數(shù)兼作目的操作數(shù)。三地址指令:指令中包含三個(gè)操作數(shù)字段,其中兩個(gè)源操作數(shù),一個(gè)目的操作數(shù)。三CISC和RISC的基本概念只需了解基本概念和特點(diǎn)即可。CISC:復(fù)雜指令集計(jì)算機(jī)。指令系統(tǒng)包含的

12、指令條數(shù)較多,優(yōu)點(diǎn)是編程方便,程序效率較高;缺點(diǎn)是指令條數(shù)較多導(dǎo)致系統(tǒng)復(fù)雜程度較高。RISC:精簡指令集計(jì)算機(jī)。根據(jù)指令的使用頻率,給使用頻率較高的20%指令分配較短的操作碼,使用較快的尋址方式;其他80%指令用較長操作碼或直接用子程序?qū)崿F(xiàn)。指令系統(tǒng)指令條數(shù)較少,一般嵌入式的處理器使用RISC,比如ARM處理器。 例題例1(2001年上海大學(xué)攻讀碩士學(xué)位研究生入學(xué)考試試題,10分;武漢理工大學(xué)2004年攻讀碩士學(xué)位研究生入學(xué)考試試題,10分;2004年武漢理工大學(xué)攻讀碩士學(xué)位研究生入學(xué)考試試題,10分):假設(shè)某計(jì)算機(jī)指令長度為20位,具有雙操作數(shù)、單操作數(shù)、無操作數(shù)三類指令格式,規(guī)定每個(gè)操作數(shù)

13、占6位,現(xiàn)已設(shè)計(jì)出m條雙操作數(shù)指令,n條無操作數(shù)指令,求這臺(tái)計(jì)算機(jī)最多可設(shè)計(jì)出多少條單操作數(shù)指令?若操作碼位數(shù)固定呢?解:本題為典型的擴(kuò)展操作碼指令格式,由題意,該指令系統(tǒng)的指令格式如下:操作碼 操作數(shù)1(6位) 操作數(shù)2(6位) 由于規(guī)定每個(gè)操作數(shù)占6位,所以雙操作數(shù)指令的操作碼有20-6-6=8位;單操作數(shù)指令可以將操作碼的位數(shù)擴(kuò)充至操作數(shù)1,操作碼有8+6=14位;無操作數(shù)指令可以將操作碼的位數(shù)擴(kuò)充至操作數(shù)2,操作碼有14+6=20位。所以,雙操作數(shù)指令最多可有28=256條,已知現(xiàn)已設(shè)計(jì)出m條雙操作數(shù)指令,可剩余256-m個(gè)8位編碼用于擴(kuò)充單操作數(shù)指令。單操作數(shù)指令最多有(256-m)

14、*26條,設(shè)最終指令系統(tǒng)有x條單操作數(shù)指令,可剩余(256-m)*26-x個(gè)14位編碼用于擴(kuò)充無操作數(shù)指令。無操作數(shù)指令最多有(256-m)*26-x)*26條,已知現(xiàn)已設(shè)計(jì)出n條無操作數(shù)指令,所以n=(256-m)*26-x)*26,解不等式求出x即可。n=(256-m)*64-x)*64n/64=(256-m)*64-xx=(256-m)*64- n/64這臺(tái)計(jì)算機(jī)最多可設(shè)計(jì)出(256-m)*64- n/64條單操作數(shù)指令。(1) 本題如果將條件改為操作碼位數(shù)固定,則最多可設(shè)計(jì)256-m-n條單操作數(shù)指令。例2、(2003年武漢理工大學(xué)攻讀碩士學(xué)位研究生入學(xué)考試試題,10分)某機(jī)存儲(chǔ)器及C

15、PU的字長均為16位,CPU有16個(gè)16位的通用寄存器。請(qǐng)為該機(jī)設(shè)計(jì)能滿足下列條件的指令格式,并加以說明。1、允許有不超過210種的操作指令2、主存儲(chǔ)器空間不少于16MB3、至少有5種尋址方式4、只有單字長指令和雙字長指令可供選擇解:允許有不超過210種的操作指令-由于7log22108,所以操作碼占8位,最多256條指令,現(xiàn)有210條,剩余46個(gè)編碼可用于擴(kuò)充。主存儲(chǔ)器空間不少于16MB-主存字節(jié)地址至少log216M=24位至少有5種尋址方式-由于2log253,所以尋址方式占3位,最多8種尋址方式,現(xiàn)有5種,剩余3個(gè)編碼可用于擴(kuò)充其他尋址方式。16個(gè)通用寄存器,寄存器編號(hào)占log216=

16、4位單字長指令即指令長度為16位,其中操作碼必須占8位,一個(gè)操作數(shù)的尋址方式占3位,僅剩5位用于操作數(shù)。立即數(shù)尋址方式、寄存器尋址方式和寄存器間接尋址方式用5位可以直接表達(dá),其他涉及內(nèi)存的尋址方式需要24(字節(jié)尋址)(字尋址)位地址,指令的操作數(shù)字段只能提供5位,需要借助特殊寄存器提供高19位地址,但寄存器只有16位,可以將寄存器內(nèi)容左移8位的方法構(gòu)造出24位地址,再和指令提供的5位偏移地址求和,以得到操作數(shù)所需的24位有效地址。所以單字長指令格式為操作碼8位,尋址方式3位,操作數(shù)5位。雙字長指令即指令長度為32位,其中操作碼必須占8位,剩余24位。雙字長單操作數(shù)指令格式,24位中的3位為尋址方式,剩余21位用于操作數(shù)。立即數(shù)尋址方式和寄存器相關(guān)的尋址方式用5位可以直接表達(dá),其他涉及內(nèi)存的尋址方式需要24位地址,指令的操作數(shù)字段只能提供21位,可以將寄存器內(nèi)容左移8位的方法構(gòu)造出24位地址,再和指令提供的21位偏移地址求和,以得到操作數(shù)所需的24

溫馨提示

  • 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)論