指令和數(shù)據(jù)的尋址方式.ppt
《指令和數(shù)據(jù)的尋址方式.ppt》由會員分享,可在線閱讀,更多相關(guān)《指令和數(shù)據(jù)的尋址方式.ppt(13頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
4.3指令和數(shù)據(jù)的尋址方式,操作數(shù)或指令在存儲器中的地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲單元時(shí)其存儲單元的編號。在存儲器中,操作數(shù)或指令寫入或讀出的方式,有三種:地址指定方式、相聯(lián)存儲方式和堆棧存儲方式。當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。尋址方式分為兩類,即指令尋址方式和數(shù)據(jù)尋址方式。指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞?,另一種是跳躍尋址方式。4.3.1指令的尋址方式1.順序?qū)ぶ贩绞街噶畹刂吩趦?nèi)存中按順序安排,當(dāng)執(zhí)行一段程序時(shí),通常是一條指令接一條指令的順序執(zhí)行。為此,必須使用程序計(jì)數(shù)器(又稱指令指針寄存器)PC來計(jì)數(shù)指令的順序號,該順序號就是指令在內(nèi)存中的地址。2.跳躍尋址方式當(dāng)程序轉(zhuǎn)移執(zhí)行的順序時(shí),指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令給出。程序跳躍后,按新的指令地址開始順序執(zhí)行。,4.3.2操作數(shù)尋址方式,所謂操作數(shù)的尋址方式,就是形成操作數(shù)的有效地址的方法。例如,一種單地址指令的結(jié)構(gòu)如下所示,其中用X,I,D各字段組成該指令的操作數(shù)地址。操作碼OP變址X間址I形式地址D指令中操作數(shù)字段的地址碼是由形式地址和尋址方式特征位等組合形成,因此,一般來說,指令中所給出的地址碼,并不是操作數(shù)的有效地址。因此,尋址過程就是把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。1.隱含尋址在指令中不明顯的給出而是隱含著操作數(shù)的地址。例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對單地址指令格式來說是隱含地址。2.立即尋址指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身。這種方式的特點(diǎn)是指令執(zhí)行時(shí)間很短,不需要訪問內(nèi)存取數(shù)。例如:單地址的移位指令格式為OP(移位)FD這里D不是地址,而是一個(gè)操作數(shù)。F為標(biāo)志位,當(dāng)F=1,操作數(shù)進(jìn)行右移;當(dāng)F=0時(shí),操作數(shù)進(jìn)行左移。,4.3.2操作數(shù)尋址方式,直接尋址:是一種基本的尋址方法,其特點(diǎn)是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。采用直接尋址方式時(shí),指令字中的形式地址D就是操作數(shù)的有效地址E,既E=D。因此通常把形式地址D又稱為直接地址。此時(shí),由尋址模式給予指示。如果用S表示操作數(shù),那么直接尋址的邏輯表達(dá)式為S=(E)=(D)間接尋址:是相對于直接尋址而言的,在間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,或者說D單元的內(nèi)容才是操作數(shù)的有效地址。如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式:操作碼ID尋址特征位I=0,表示直接尋址,這時(shí)有效地址E=D;I=1,表示間接尋址,這時(shí)有效地址E=(D)。間接尋址方式是早期計(jì)算機(jī)中經(jīng)常采用的方式,但由于兩次訪存,影響指令執(zhí)行速度,現(xiàn)在已不大使用。,4.3.2操作數(shù)尋址方式,寄存器尋址方式和寄存器間接尋址方式:當(dāng)操作數(shù)不放在內(nèi)存中,而是放在CPU的通用寄存器中時(shí),可采用寄存器尋址方式。此時(shí)指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號,而是通用寄存器的編號。寄存器尋址方式和寄存器間接尋址方式的區(qū)別在于:指令中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中。相對尋址:是把程序計(jì)數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成操作數(shù)的有效地址。程序計(jì)數(shù)器的內(nèi)容就是當(dāng)前指令的地址?!跋鄬Α睂ぶ罚褪窍鄬τ诋?dāng)前的指令地址而言。采用相對尋址方式的好處是程序員無須用指令的絕對地址編程,所編程序可以放在內(nèi)存任何地方。此時(shí)形式地址D通常稱為偏移量,其值可正可負(fù),相對于當(dāng)前指令地址進(jìn)行浮動?;穼ぶ贩绞剑簩PU中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。它的優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址。,4.3.2操作數(shù)尋址方式,變址尋址方式:把CPU中某個(gè)變值寄存器的內(nèi)容與偏移量D相加來形成操作數(shù)的有效地址。使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律性變化。塊尋址方式:塊尋址方式經(jīng)常用在輸入輸出指令中,以實(shí)現(xiàn)外存儲器或外圍設(shè)備同內(nèi)存之間的數(shù)據(jù)塊傳送。塊尋址方式在內(nèi)存中還可用于數(shù)據(jù)塊搬家。塊尋址時(shí),通常在指令中指出數(shù)據(jù)塊的起始地址(首地址)和數(shù)據(jù)塊的長度(字?jǐn)?shù)或字節(jié)數(shù))。如果數(shù)據(jù)塊是變長的,可用三種方法指出它的長度:(1)指令中劃出字段指出長度;(2)指令格式中指出數(shù)據(jù)塊的首地址與末地址;(3)由塊結(jié)束字符指出數(shù)據(jù)塊長度。操作碼首地址標(biāo)志位末地址段尋址方式:微型機(jī)中采用了段尋址方式,例如它們可以給定一個(gè)20位的地址,從而有1M存儲空間的直接尋址能力。為此將整個(gè)1M空間存儲器以64K為單位劃分成若干段。在尋址一個(gè)內(nèi)存具體單元時(shí),由一個(gè)基地址再加上某些寄存器提供的16位偏移量來形成實(shí)際的20位物理地址。這個(gè)基地址就是CPU中的段寄存器。,4.3.3尋址方式舉例,PDP/11系列機(jī)尋址方式PDP/11系列機(jī)指令字長為16位,雖然指令系統(tǒng)中有單操作數(shù)指令和雙操作數(shù)指令,但操作數(shù)字段即地址部分均由6位二進(jìn)制構(gòu)成。例如雙操作數(shù)指令為:1512119876543210操作碼尋址方式寄存器號尋址方式寄存器號|||參閱表4.4PDP/11系列機(jī)的尋址方式,其主要特征是采用寄存器尋址Pentium的尋址方式。Pentium的外部地址總線寬度是36位,但它也支持32位的物理地址空間。其有效地址的尋址方式共有九種,參見表4.5Pentium的尋址方式,[例3]一種二地址RS型指令的結(jié)構(gòu)如下所示:6位4位1位2位16位OP---通用寄存器IX偏移量D其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過I,X,D的組合,可構(gòu)成下表所示的尋址方式。請寫出六種尋址方式的名稱。尋址方式IX有效地址E算法說明(1)000E=D(2)001E=(PC)+DPC為程序計(jì)數(shù)器(3)010E=(R2)+DR2為變址寄存器(4)111E=(R3)(5)100E=(D)(6)011E=(R1)+DR1為基址寄存器[解]:⑴直接尋址⑵相對尋址⑶變址尋址⑷寄存器間接尋址⑸間接尋址⑹基址尋址,[例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ù)指令。,要求:⑴分析三種指令的指令格式與尋址方式特點(diǎn)。⑵CPU完成哪一種操作所花時(shí)間最短?哪一種操作所花時(shí)間最長?第二種指令的執(zhí)行時(shí)間有時(shí)會等于第三種指令的執(zhí)行時(shí)間嗎?⑶下列情況下每個(gè)十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?①(F0F1)H(3CD2)H②(2856)H③(6FD6)H④(1C2)H[解]:⑴第一種指令是單字長二地址指令,RR型;第二種指令是雙字長二地址指令,RS型,其中S采用基址尋址或變址尋址,R由源寄存器決定;第三種也是雙字長二地址指令,RS型,其中R由目標(biāo)寄存器決定,S由20位地址(直接尋址)決定。⑵處理機(jī)完成第一種指令所花時(shí)間最短,因?yàn)槭荝R型指令,不需要訪問存儲器。第二種指令所花時(shí)間最長,因?yàn)槭荝S型指令,需要訪問存儲器,同時(shí)要進(jìn)行尋址方式的變換運(yùn)算(基址或變址),,這也需要時(shí)間。第二種指令的執(zhí)行時(shí)間不會等于第三種指令,因?yàn)榈谌N指令雖然也訪問存儲器,但節(jié)省了求有效地址運(yùn)算的時(shí)間開銷。⑶根據(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號寄存器。②(2856)H指令代表MOV指令,編碼正確,含義是把6號源寄存器的內(nèi)容傳送至5號目標(biāo)寄存器。③(6FD6)H是單字長指令,一定是MOV指令,但編碼錯(cuò)誤,可改正為(28D6)H④(1C2)H是單字長指令,代表MOV指令,但編碼錯(cuò)誤,可改正為(28C2)H。,4.4堆棧尋址方式,堆棧是一組能存儲和取出數(shù)據(jù)的暫時(shí)存儲單元。堆棧和其他形式的存儲器之間的差別就在于,它們對數(shù)據(jù)的存取方法或?qū)ぶ贩椒ㄓ兴煌?.4.1串聯(lián)堆棧串行堆棧是由CPU當(dāng)中的一組專門的寄存器構(gòu)成。串行堆棧的最大優(yōu)點(diǎn)是速度快。4.4.2存儲器堆棧串行堆棧存的容量有限,為了突破這種限制,使用了存儲器堆棧,其優(yōu)點(diǎn)在于:l堆棧能夠具有程序員要求的任意長度;l只要程序員喜歡,愿意建立多少堆棧,就能建立多少堆棧;l可以用對存儲器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn)行尋址。存儲器堆棧使用CPU中的一個(gè)特殊寄存器作為堆棧指示器。串聯(lián)堆棧和存儲器堆棧的操作方式不同,在串聯(lián)堆棧中,移動的是數(shù)據(jù),而在存儲器堆棧中,移動的是棧頂。這主要和兩種堆棧的速度有關(guān)。堆棧兩種操作:進(jìn)棧、出棧,4.5典型指令,4.5.1指令的分類一個(gè)較完善的指令系統(tǒng)應(yīng)當(dāng)包括數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算類指令、程序控制類指令、輸入輸出指令、字符串類指令、系統(tǒng)控制類指令。,4.5.2基本指令系統(tǒng)指令系統(tǒng)的基本指令見表4.7。,4.5.3精簡指令系統(tǒng)RISC指令系統(tǒng)的特征:l選取使用頻率最高的一些簡單指令;(指令總數(shù)較少)l指令長度固定,指令格式種類少,尋址方式種類少;l只有取數(shù)/存數(shù)指令訪問存儲器,其余的指令操作都在寄存器之間進(jìn)行。因此,RISC的CPU的寄存器較多。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 指令 數(shù)據(jù) 尋址 方式
鏈接地址:http://m.jqnhouse.com/p-11534999.html