第四章 指令系統(tǒng)(白中英第五版)_第1頁(yè)
第四章 指令系統(tǒng)(白中英第五版)_第2頁(yè)
第四章 指令系統(tǒng)(白中英第五版)_第3頁(yè)
第四章 指令系統(tǒng)(白中英第五版)_第4頁(yè)
第四章 指令系統(tǒng)(白中英第五版)_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組原理第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求一、指令系統(tǒng)的發(fā)展計(jì)算機(jī)的程序是有一系列的機(jī)器指令組成的。指令就是要計(jì)算機(jī)執(zhí)行某種操作的命令。從計(jì)算機(jī)組成的層次結(jié)構(gòu)來(lái)說(shuō),計(jì)算機(jī)的指令有微指令、機(jī)器指令和宏指令之分。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求微指令:是微程序級(jí)的命令,它屬于硬件。宏指令:是由若干條機(jī)器指令組成的軟件指令,它屬于軟件。機(jī)器指令:介于微指令和宏指令之間,通常簡(jiǎn)稱為指令,每一條指令可以完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。

02二月20234.1指令系統(tǒng)的發(fā)展與性能要求一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合,稱為這臺(tái)計(jì)算機(jī)的指令系統(tǒng)。指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要因素,它的格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求

02二月20234.1指令系統(tǒng)的發(fā)展與性能要求下面我們來(lái)看一下計(jì)算機(jī)指令系統(tǒng)的發(fā)展過(guò)程:

50年代:指令系統(tǒng)只有定點(diǎn)加減、邏輯運(yùn)算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至幾十條指令。60年代后期:增加了乘除運(yùn)算、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算、字符串處理等指令,指令數(shù)目多達(dá)一二百條,尋址方式也趨多樣化。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求系列計(jì)算機(jī)是指節(jié)本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī)。其必要條件是同一系列的各機(jī)種有共同的指令集.而且新推出的機(jī)種指令系統(tǒng)一定包含所有舊機(jī)種的全部指令,即實(shí)現(xiàn)一個(gè)“向上兼容”。因此舊機(jī)種上運(yùn)行的各種軟件可以不加任何修改便可在新機(jī)種上運(yùn)行,大大減少了軟件開發(fā)費(fèi)用。系列機(jī)解決了各機(jī)種的軟件兼容問題02二月20234.1指令系統(tǒng)的發(fā)展與性能要求復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)計(jì)算機(jī)的指令系統(tǒng)多達(dá)幾百條。但是如此龐大的指令系統(tǒng)難以保證正確性,不易調(diào)試維護(hù),造成硬件資源浪費(fèi)。為此人們又提出了便于VLSI技術(shù)實(shí)現(xiàn)的精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)RISC是一種計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)思想,至今還沒有一個(gè)確切的定義,也難以再CISC和RISC之間劃出一條明顯的界限02二月20234.1指令系統(tǒng)的發(fā)展與性能要求二、對(duì)指令系統(tǒng)性能的要求指令系統(tǒng)的性能決定了計(jì)算機(jī)的基本功能,它的設(shè)計(jì)直接關(guān)系到計(jì)算機(jī)的硬件結(jié)構(gòu)和用戶的需要。一個(gè)完善的指令系統(tǒng)應(yīng)滿足如下四方面的要求:完備性用匯編語(yǔ)言編寫各種程序時(shí),指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來(lái)實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。

02二月20234.1指令系統(tǒng)的發(fā)展與性能要求有效性利用該指令系統(tǒng)所編寫的程序能夠高效率的運(yùn)行。高效率主要表現(xiàn)在程序占據(jù)存儲(chǔ)空間小、執(zhí)行速度快。一般來(lái)說(shuō),一個(gè)功能更強(qiáng)、更完善的指令系統(tǒng),必定有更好的有效性。規(guī)整性規(guī)整性包括指令系統(tǒng)的對(duì)稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求對(duì)稱性指在指令系統(tǒng)中所有的寄存器和存儲(chǔ)器單元都可同等對(duì)待,所有的指令都可使用各種尋址方式;勻齊性是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型;指令格式和數(shù)據(jù)格式的一致性是指指令長(zhǎng)度和數(shù)據(jù)長(zhǎng)度有一定的關(guān)系,以方便處理和存取。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求兼容性

系列機(jī)各機(jī)種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機(jī)種上基本軟件可以通用。但由于不同機(jī)種推出的時(shí)間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機(jī)上運(yùn)行的軟件可以在高檔機(jī)上運(yùn)行。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求三、低級(jí)語(yǔ)言與硬件結(jié)構(gòu)的關(guān)系計(jì)算機(jī)語(yǔ)言有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言之分。高級(jí)語(yǔ)言語(yǔ)句和用法與具體機(jī)器的指令系統(tǒng)無(wú)關(guān)。低級(jí)語(yǔ)言分機(jī)器語(yǔ)言(二進(jìn)制語(yǔ)言)和匯編語(yǔ)言(符號(hào)語(yǔ)言),這兩種語(yǔ)言都是面向機(jī)器的語(yǔ)言,它們和具體機(jī)器的指令系統(tǒng)密切相關(guān)。機(jī)器語(yǔ)言用指令代碼編寫程序,而符號(hào)語(yǔ)言用指令助記符來(lái)編寫程序。

02二月20234.1指令系統(tǒng)的發(fā)展與性能要求高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的異同可參考表4.1。計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的唯一語(yǔ)言是二進(jìn)制語(yǔ)言,但人們采用符號(hào)語(yǔ)言或高級(jí)語(yǔ)言編寫程序。為此,必須借助匯編程序或編譯程序,把符號(hào)語(yǔ)言或高級(jí)語(yǔ)言翻譯成二進(jìn)制碼組成的機(jī)器語(yǔ)言。匯編語(yǔ)言依賴于計(jì)算機(jī)的硬件結(jié)構(gòu)和指令系統(tǒng)。不同的機(jī)器有不同的指令,所以用匯編語(yǔ)言編寫的程序不能在其他類型的機(jī)器上運(yùn)行。

02二月20234.1指令系統(tǒng)的發(fā)展與性能要求高級(jí)語(yǔ)言與計(jì)算機(jī)的硬件結(jié)構(gòu)及指令系統(tǒng)無(wú)關(guān),在編寫程序方面比匯編語(yǔ)言優(yōu)越。但是高級(jí)語(yǔ)言程序“看不見”機(jī)器的硬件結(jié)構(gòu),不能用于編寫直接訪問機(jī)器硬件資源的系統(tǒng)軟件或設(shè)備控制軟件。為此,一些高級(jí)語(yǔ)言提供了與匯編語(yǔ)言之間的調(diào)用接口。用匯編語(yǔ)言編寫的程序,可作為高級(jí)語(yǔ)言的一個(gè)外部過(guò)程或函數(shù),利用堆棧來(lái)傳遞參數(shù)或參數(shù)的地址。02二月20234.1指令系統(tǒng)的發(fā)展與性能要求02二月20234.2指令格式指令能反映以下信息:做什么操作如果需要操作數(shù),從哪里取結(jié)果送哪里下一條指令從哪里取影響計(jì)算機(jī)指令格式的因素:

機(jī)器的字長(zhǎng)存儲(chǔ)器的容量()指令的功能02二月20234.2指令格式指令格式則是指令字用二進(jìn)制代碼表示的結(jié)構(gòu)形式,由操作碼字段和地址碼字段組成。02二月2023操作碼地址碼4.2指令格式一、操作碼操作碼字段表征指令的操作特性與功能;地址碼字段通常指定參與操作的操作數(shù)的地址。操作碼:表示該指令應(yīng)進(jìn)行什么性質(zhì)的操作。每一種編碼代表一種指令,組成操作碼字段的位數(shù)一般取決于計(jì)算機(jī)指令系統(tǒng)的規(guī)模。02二月20234.2指令格式例如:8條____________3位32條___________5位對(duì)于一個(gè)機(jī)器的指令系統(tǒng),在指令字中操作碼字段和地址碼字段長(zhǎng)度通常是固定的。在單片機(jī)中,由于指令字較短,為了充分利用指令字長(zhǎng)度,指令字的操作碼字段和地址碼字段是不固定的,即不同類型的指令有不同的劃分,以便盡可能用較短的指令字長(zhǎng)來(lái)表示越來(lái)越多的操作種類,并在越來(lái)越大的存儲(chǔ)空間中尋址。02二月20234.2指令格式二、地址碼地址碼通常指定參與操作的操作數(shù)的地址。根據(jù)一條指令中有幾個(gè)操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。目前二地址和一地址指令格式用的得最多。零地址指令的指令字中只有操作碼,而沒有地址碼?!巴C(jī)”、“空操作”、“清除”等控制類指令02二月20234.2指令格式一地址指令常稱單操作數(shù)指令。

(AC)OP(A)→AC二地址指令常稱雙操作數(shù)指令,它有兩個(gè)地址碼字段A1和A2,分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中或運(yùn)算器通用寄存器的地址,其中地址A1兼做存放操作結(jié)果的地址。

(A1)OP(A2)→A102二月2023OPA1A24.2指令格式三地址指令字中有三個(gè)操作數(shù)地址A1,A2和A3。

(A1)OP(A2)→A3

02二月2023OPA1A2A34.2指令格式二地址指令根據(jù)操作數(shù)的物理位置又可歸結(jié)為三種類型:訪問內(nèi)存的指令格式,我們稱這類指令為存儲(chǔ)器-存儲(chǔ)器(SS)型指令;訪問寄存器的指令格式,我們稱這類指令為寄存器-寄存器(RR)型指令;第三種類型為寄存器-存儲(chǔ)器(RS)型指令。02二月20234.2指令格式三、指令字長(zhǎng)度一個(gè)指令字中包含二進(jìn)制代碼的位數(shù),稱為指令字長(zhǎng)度。機(jī)器字長(zhǎng)是指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計(jì)算機(jī)的運(yùn)算精度。02二月20234.2指令格式單字長(zhǎng)指令:指令字長(zhǎng)度等于機(jī)器字長(zhǎng)度的指令半字長(zhǎng)指令:指令字長(zhǎng)度等于半個(gè)機(jī)器字長(zhǎng)度的指令雙字長(zhǎng)指令:指令字長(zhǎng)度等于兩個(gè)機(jī)器字長(zhǎng)度的指令02二月20234.2指令格式使用多字長(zhǎng)指令的優(yōu)點(diǎn):可以提供足夠的地址位來(lái)解決訪問內(nèi)存任何單元的尋址問題。使用多字長(zhǎng)指令的缺點(diǎn):必須兩次或多次訪問內(nèi)存以取出整條指令,這就降低了CPU的運(yùn)算速度,同時(shí)又占用了更多的存儲(chǔ)空間。02二月20234.2指令格式在一個(gè)指令系統(tǒng)中,如果各種指令字長(zhǎng)度是相等的,稱為等長(zhǎng)指令字結(jié)構(gòu),這種指令字結(jié)構(gòu)簡(jiǎn)單,且指令字長(zhǎng)度是不變的。如果各種指令字長(zhǎng)度隨指令功能而異,就稱為變長(zhǎng)指令字結(jié)構(gòu)。這種指令字結(jié)構(gòu)靈活,能充分利用指令長(zhǎng)度,但指令的控制較復(fù)雜。02二月20234.2指令格式四、指令助記符由于硬件只能識(shí)別1和0,所以采用二進(jìn)制操作碼是必要的,但是我們用二進(jìn)制來(lái)書寫程序卻非常麻煩。為便于書寫和記憶而設(shè)定的,與機(jī)器指令一一對(duì)應(yīng)。每條指令通常用3個(gè)或4個(gè)英文縮寫字母來(lái)表示。這種縮寫碼叫做指令助記符。指令助記符由匯編程序轉(zhuǎn)換成它們相對(duì)應(yīng)的二進(jìn)制操作碼。02二月20234.2指令格式不同的計(jì)算機(jī)中,指令助記符的規(guī)定是不一樣的。當(dāng)指令的操作碼用助記符表示,而地址及其尋址特征也用符號(hào)表示時(shí),就成為匯編語(yǔ)言,這些符號(hào)稱為匯編符號(hào),用匯編符號(hào)表示的指令格式,就稱為匯編格式。P118表4.202二月20234.2指令格式五、指令格式舉例八位微型計(jì)算機(jī)的指令格式8位微型機(jī)字長(zhǎng)只有8位,指令結(jié)構(gòu)是一種可變字長(zhǎng)形式,包含單字長(zhǎng)、雙字長(zhǎng)、三字長(zhǎng)指令等多種。單字長(zhǎng)指令雙字長(zhǎng)指令三字長(zhǎng)指令

02二月20234.2指令格式內(nèi)存按字節(jié)編址,所以單字長(zhǎng)指令每執(zhí)行一條指令后,指令地址加1。雙字長(zhǎng)指令或三字長(zhǎng)指令每執(zhí)行一條指令時(shí),指令地址要加2或加3,可見多字長(zhǎng)的指令格式不利于提高機(jī)器速度。02二月20234.2指令格式六、PDP/11系列機(jī)指令格式

PDP/11系列機(jī)指令字長(zhǎng)16位,其指令格式如下表所示。4.3PDP/11系列機(jī)指令格式

02二月20234.2指令格式從表中看出,在PDP/11中,操作碼字段是不固定的,其長(zhǎng)度也是不相同的。這樣做可以擴(kuò)展操作碼以包含較多的指令。但是操作碼字段不固定,對(duì)控制器的設(shè)計(jì)來(lái)說(shuō)必將復(fù)雜化。02二月20234.2指令格式[例1]指令格式如下所示,其中OP為操作碼,試分析指令格式的特點(diǎn)。1597430

[解]:(1)單字長(zhǎng)二地址指令。(2)操作碼字段OP可以指定128條指令。(3)源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè)),所以是RR型指令,兩個(gè)操作數(shù)均在寄存器中。(4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。02二月2023OP------源寄存器目標(biāo)寄存器4.2指令格式[例2]指令格式如下所示,OP為操作碼字段,試分析指令格式特點(diǎn)。

15107430[解]:(1)雙字長(zhǎng)二地址指令,用于訪問存儲(chǔ)器。

(2)操作碼字段OP為6位,可以指定64種操作。

(3)一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定)所以是RS型指令。02二月2023OP------源寄存器變址寄存器位移量(16字)4.3指令和數(shù)據(jù)的尋址方式研究問題確定本條指令中各操作數(shù)的地址下一條指令的地址尋址方式是指CPU根據(jù)指令中給出的地址碼字段尋找相應(yīng)的操作數(shù)的方式,它與計(jì)算機(jī)硬件結(jié)構(gòu)緊密相關(guān),而且對(duì)指令的格式和功能有很大的影響。02二月20234.3指令和數(shù)據(jù)的尋址方式尋址方式

指令尋址方式(簡(jiǎn)單)

跳躍尋址方式

數(shù)據(jù)尋址方式(復(fù)雜)02二月2023順序?qū)ぶ贩绞?.3指令和數(shù)據(jù)的尋址方式一、指令的尋址方式操作數(shù)或指令在存儲(chǔ)器中的地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí)其存儲(chǔ)單元的編號(hào)。在存儲(chǔ)器中,操作數(shù)或指令字寫入或讀出的方式,有地址指定方式、相聯(lián)存儲(chǔ)方式和堆棧存取方式。當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。02二月20234.3指令和數(shù)據(jù)的尋址方式順序?qū)ぶ贩绞街噶畹刂吩趦?nèi)存中按順序安排,當(dāng)執(zhí)行一段程序時(shí),通常是一條指令接一條指令的順序執(zhí)行。從存儲(chǔ)器取出第一條指令,然后執(zhí)行這條指令;接著從存儲(chǔ)器取出第二條指令,在執(zhí)行第二條指令;接著再取出第三條指令……這種程序順序執(zhí)行的過(guò)程,我們稱為指令的順序?qū)ぶ贩绞健?2二月20234.3指令和數(shù)據(jù)的尋址方式為此,必須使用程序計(jì)數(shù)器(又稱指令指針寄存器)PC來(lái)計(jì)數(shù)指令的順序號(hào),該順序號(hào)就是指令在內(nèi)存中的地址。02二月20234.3指令和數(shù)據(jù)的尋址方式跳躍尋址方式

當(dāng)程序轉(zhuǎn)移執(zhí)行的順序時(shí),指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令給出。程序跳躍后,按新的指令地址開始順序執(zhí)行。指令計(jì)數(shù)器的內(nèi)容也必須相應(yīng)改變,以便及時(shí)跟蹤新的指令地址。采用指令跳躍尋址方式,可以實(shí)現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,從而能縮短程序長(zhǎng)度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞谩V噶钕到y(tǒng)中的各種條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令,就是為了實(shí)現(xiàn)指令的跳躍尋址而設(shè)置的。02二月20234.3指令和數(shù)據(jù)的尋址方式二、操作數(shù)尋址方式由于指令中操作數(shù)字段的地址碼是由形式地址和尋址方式特征位等組合形成。因此,一般來(lái)說(shuō),指令中所給出的地址碼,并不是操作數(shù)的有效地址。形成操作數(shù)的有效地址的方法,稱為操作數(shù)的尋址方式。02二月20234.3指令和數(shù)據(jù)的尋址方式操作數(shù)包含在CPU的某一個(gè)內(nèi)部寄存器中;操作數(shù)包含在主存儲(chǔ)器中;操作數(shù)包含在I/O設(shè)備的端口中;根據(jù)操作數(shù)放在不同的地方,從而派生各種不同的尋址方式,往往不同的計(jì)算機(jī)具有不同的尋址方式。02二月20234.3指令和數(shù)據(jù)的尋址方式例如,一種單地址指令的結(jié)構(gòu)如下所示,其中用X,I,D各字段組成該指令的操作數(shù)地址。指令中操作數(shù)字段的地址碼是由形式地址和尋址方式特征位等組合形成,因此,一般來(lái)說(shuō),指令中所給出的地址碼,并不是操作數(shù)的有效地址。因此,尋址過(guò)程就是把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過(guò)程。02二月2023操作碼OP變址X間址I地址D4.3指令和數(shù)據(jù)的尋址方式1.隱含尋址在指令中不明顯的給出而是隱含著操作數(shù)的地址。例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對(duì)單地址指令格式來(lái)說(shuō)是隱含地址。02二月20234.3指令和數(shù)據(jù)的尋址方式2.立即尋址指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身。這種方式的特點(diǎn)是指令執(zhí)行時(shí)間很短,不需要訪問內(nèi)存取數(shù)。例如:?jiǎn)蔚刂返囊莆恢噶罡袷綖檫@里D不是地址,而是一個(gè)操作數(shù)。F為標(biāo)志位,當(dāng)F=1,操作數(shù)進(jìn)行右移;當(dāng)F=0時(shí),操作數(shù)進(jìn)行左移。02二月2023OP(移位)FD4.3指令和數(shù)據(jù)的尋址方式3.直接尋址直接尋址特點(diǎn)是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。

采用直接尋址方式時(shí),指令字中的形式地址D就是操作數(shù)的有效地址E,既E=D。因此通常把形式地址D又稱為直接地址。此時(shí),由尋址模式給予指示。如果用S表示操作數(shù),那么直接尋址的邏輯表達(dá)式為S=(E)=(D)02二月20234.3指令和數(shù)據(jù)的尋址方式02二月20234.3指令和數(shù)據(jù)的尋址方式4.間接尋址間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,D單元的內(nèi)容才是操作數(shù)的有效地址。

如果把直接尋址和間接尋址結(jié)合起來(lái),指令有如下形式:

02二月2023操作碼1D4.3指令和數(shù)據(jù)的尋址方式尋址特征位I=0,表示直接尋址,這時(shí)有效地址E=D;I=1,表示間接尋址,這時(shí)有效地址E=(D)。間接尋址方式是早期計(jì)算機(jī)中經(jīng)常采用的方式,但由于兩次訪存,影響指令執(zhí)行速度,現(xiàn)在已不大使用。02二月20234.3指令和數(shù)據(jù)的尋址方式02二月20234.3指令和數(shù)據(jù)的尋址方式5.寄存器尋址方式和寄存器間接尋址方式當(dāng)操作數(shù)不放在內(nèi)存中,而是放在CPU的通用寄存器中時(shí),可采用寄存器尋址方式。此時(shí)指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號(hào),而是通用寄存器的編號(hào)。寄存器間接尋址方式與寄存器尋址方式的區(qū)別在于:指令格式中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中。02二月20234.3指令和數(shù)據(jù)的尋址方式6.相對(duì)尋址方式(偏移尋址)相對(duì)尋址是把程序計(jì)數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成操作數(shù)的有效地址。程序計(jì)數(shù)器的內(nèi)容就是當(dāng)前指令的地址?!跋鄬?duì)”尋址,就是相對(duì)于當(dāng)前的指令地址而言。

采用相對(duì)尋址方式的好處是程序員無(wú)須用指令的絕對(duì)地址編程,所編程序可以放在內(nèi)存任何地方。此時(shí)形式地址D通常稱為偏移量,其值可正可負(fù),相對(duì)于當(dāng)前指令地址進(jìn)行浮動(dòng)。02二月20234.3指令和數(shù)據(jù)的尋址方式02二月20234.3指令和數(shù)據(jù)的尋址方式7.基址尋址方式(偏移尋址)基址尋址方式是將CPU中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。

它的優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長(zhǎng),從而可以在較大的存儲(chǔ)空間中尋址。02二月20234.3指令和數(shù)據(jù)的尋址方式02二月20234.3指令和數(shù)據(jù)的尋址方式8.變址尋址方式(偏移尋址)變址尋址方式與基址尋址方式計(jì)算有效地址的方法很相似,它把CPU中某個(gè)變址寄存器的內(nèi)容與偏移量D相加來(lái)形成操作數(shù)有效地址。但使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律性變化。02二月20234.3指令和數(shù)據(jù)的尋址方式02二月20234.3指令和數(shù)據(jù)的尋址方式9.段尋址方式微型機(jī)中采用了段尋址方式,例如它們可以給定一個(gè)20位的地址,從而有1M存儲(chǔ)空間的直接尋址能力。為此將整個(gè)1M空間存儲(chǔ)器以64K為單位劃分成若干段。在尋址一個(gè)內(nèi)存具體單元時(shí),由一個(gè)基地址再加上某些寄存器提供的16位偏移量來(lái)形成實(shí)際的20位物理地址。這個(gè)基地址就是CPU中的段寄存器。在形成20位物理地址時(shí),段寄存器中的16位數(shù)會(huì)自02二月20234.3指令和數(shù)據(jù)的尋址方式動(dòng)左移4位,然后以16位偏移量相加,即可形成所需的內(nèi)存地址。這種尋址方式的實(shí)質(zhì)還是基址尋址。02二月20234.3指令和數(shù)據(jù)的尋址方式10.堆棧尋址方式堆棧有寄存器堆棧和存儲(chǔ)器堆棧兩種形式,它們都以先進(jìn)后出的原理存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)進(jìn)棧時(shí)使用PUSH指令,將數(shù)據(jù)壓入棧頂?shù)刂?,堆棧指示器減1;數(shù)據(jù)退棧時(shí),使用POP指令,數(shù)據(jù)從棧頂?shù)刂窂棾?,堆棧指示器?。這保證了堆棧中數(shù)據(jù)先進(jìn)后出的存取順序。02二月20234.3指令和數(shù)據(jù)的尋址方式[例3]一種二地址RS型指令的結(jié)構(gòu)如下所示:

6位4位1位2位16位其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過(guò)I,X,D的組合,可構(gòu)成下表所示的尋址方式。請(qǐng)寫出六種尋址方式的名稱。02二月2023操作碼-------通用寄存器1XD4.3指令和數(shù)據(jù)的尋址方式尋址方式I

X有效地址E算法說(shuō)明(1)

0

00

E=D

(2)0

01

E=(PC)+DPC為程序計(jì)數(shù)器(3)

0

10

E=(R2)+DR2為變址寄存器(4)

1

11

E=(R3)

(5)

1

00

E=(D)

(6)0

11

E=(R1)+DR1為基址寄存器02二月20234.3指令和數(shù)據(jù)的尋址方式[解]:⑴直接尋址

⑵相對(duì)尋址⑶變址尋址⑷寄存器間接尋址⑸間接尋址⑹基址尋址02二月20234.3指令和數(shù)據(jù)的尋址方式[例4]

某16位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個(gè)20位基址寄存器,四個(gè)16位變址寄存器,十六個(gè)16位通用寄存器,指令匯編格式中的S(源),D(目標(biāo))都是通用寄存器,M是主存中的一個(gè)單元。三種指令的操作碼分別是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是傳送指令,STA為寫數(shù)指令,LDA為讀數(shù)指令。02二月20234.3指令和數(shù)據(jù)的尋址方式要求:⑴分析三種指令的指令格式與尋址方式特點(diǎn)。⑵CPU完成哪一種操作所花時(shí)間最短?哪一種操作所花時(shí)間最長(zhǎng)?第二種指令的執(zhí)行時(shí)間有時(shí)會(huì)等于第三種指令的執(zhí)行時(shí)間嗎?⑶下列情況下每個(gè)十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?①(F0F1)H(3CD2)H②(2856)H

③(6FD6)H④(1C2)H02二月20234.3指令和數(shù)據(jù)的尋址方式[解]:

⑴第一種指令是單字長(zhǎng)二地址指令,RR型;第二種指令是雙字長(zhǎng)二地址指令,RS型,其中S采用基址尋址或變址尋址,R由源寄存器決定;第三種也是雙字長(zhǎng)二地址指令,RS型,其中R由目標(biāo)寄存器決定,S由20位地址(直接尋址)決定。

02二月20234.3指令和數(shù)據(jù)的尋址方式⑵處理機(jī)完成第一種指令所花時(shí)間最短,因?yàn)槭荝R型指令,不需要訪問存儲(chǔ)器。第二種指令所花時(shí)間最長(zhǎng),因?yàn)槭荝S型指令,需要訪問存儲(chǔ)器,同時(shí)要進(jìn)行尋址方式的變換運(yùn)算(基址或變址),這也需要時(shí)間。第二種指令的執(zhí)行時(shí)間不會(huì)等于第三種指令,因?yàn)榈谌N指令雖然也訪問存儲(chǔ)器,但節(jié)省了求有效地址運(yùn)算的時(shí)間開銷。02二月20234.3指令和數(shù)據(jù)的尋址方式⑶根據(jù)已知條件:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,將指令的十六進(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)寄存器。02二月20234.3指令和數(shù)據(jù)的尋址方式③(6FD6)H是單字長(zhǎng)指令,一定是MOV指令,但編碼錯(cuò)誤,可改正為(28D6)H④(1C2)H

是單字長(zhǎng)指令,代表MOV指令,但編碼錯(cuò)誤,可改正為(28C2)H

。02二月20234.4典型指令一、指令的分類1.數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作指令等等。這類指令主要用來(lái)實(shí)現(xiàn)主存和寄存器之間,或寄存器和寄存器之間的數(shù)據(jù)傳送。02二月20234.4典型指令2.算術(shù)運(yùn)算指令這類指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。這類指令主要用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算,大型機(jī)中有向量運(yùn)算指令,直接對(duì)整個(gè)向量或矩陣進(jìn)行求和、求積運(yùn)算。02二月20234.4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論