指令和數(shù)據(jù)的尋址方式.ppt_第1頁
指令和數(shù)據(jù)的尋址方式.ppt_第2頁
指令和數(shù)據(jù)的尋址方式.ppt_第3頁
指令和數(shù)據(jù)的尋址方式.ppt_第4頁
指令和數(shù)據(jù)的尋址方式.ppt_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

43 指令和數(shù)據(jù)的尋址方式,操作數(shù)或指令在存儲(chǔ)器中的地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí)其存儲(chǔ)單元的編號。 在存儲(chǔ)器中,操作數(shù)或指令寫入或讀出的方式,有三種:地址指定方式、相聯(lián)存儲(chǔ)方式和 堆棧存儲(chǔ)方式。 當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。尋址方式分為兩類,即指令尋址方式和數(shù)據(jù)尋址方式。 指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞剑硪环N是跳躍尋址方式。 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(移位) F D 這里D不是地址,而是一個(gè)操作數(shù)。F為標(biāo)志位,當(dāng)F1,操作數(shù)進(jìn)行右移;當(dāng)F0時(shí),操作數(shù)進(jìn)行左移。,432 操作數(shù)尋址方式,直接尋址:是一種基本的尋址方法,其特點(diǎn)是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。 采用直接尋址方式時(shí),指令字中的形式地址D就是操作數(shù)的有效地址E,既ED。因此通常把形式地址D又稱為直接地址。此時(shí),由尋址模式給予指示。 如果用S表示操作數(shù),那么直接尋址的邏輯表達(dá)式為 S(E)(D) 間接尋址:是相對于直接尋址而言的,在間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,或者說D單元的內(nèi)容才是操作數(shù)的有效地址。 如果把直接尋址和間接尋址結(jié)合起來,指令有如下形式: 操作碼 I D 尋址特征位I0,表示直接尋址,這時(shí)有效地址ED;I1,表示間接尋址,這時(shí)有效地址E(D)。 間接尋址方式是早期計(jì)算機(jī)中經(jīng)常采用的方式,但由于兩次訪存,影響指令執(zhí)行速度,現(xiàn)在已不大使用。,432 操作數(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)行浮動(dòng)。 基址尋址方式:將CPU中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。 它的優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長,從而可以在較大的存儲(chǔ)空間中尋址。,432 操作數(shù)尋址方式,變址尋址方式:把CPU中某個(gè)變值寄存器的內(nèi)容與偏移量D相加來形成操作數(shù)的有效地址。 使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律性變化。 塊尋址方式:塊尋址方式經(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ù))。 如果數(shù)據(jù)塊是變長的,可用三種方法指出它的長度: (1)指令中劃出字段指出長度; (2)指令格式中指出數(shù)據(jù)塊的首地址與末地址; (3)由塊結(jié)束字符指出數(shù)據(jù)塊長度。 操作碼 首地址 標(biāo)志位 末地址 段尋址方式:微型機(jī)中采用了段尋址方式,例如它們可以給定一個(gè)20位的地址,從而有1M存儲(chǔ)空間的直接尋址能力。為此將整個(gè)1M空間存儲(chǔ)器以64K為單位劃分成若干段。在尋址一個(gè)內(nèi)存具體單元時(shí),由一個(gè)基地址再加上某些寄存器提供的16位偏移量來形成實(shí)際的20位物理地址。這個(gè)基地址就是CPU中的段寄存器。,433 尋址方式舉例,PDP/11系列機(jī)尋址方式 PDP/11系列機(jī)指令字長為16位,雖然指令系統(tǒng)中有單操作數(shù)指令和雙操作數(shù)指令,但操作數(shù)字段即地址部分均由6位二進(jìn)制構(gòu)成。例如雙操作數(shù)指令為: 15 12 11 9 8 7 6 5 4 3 2 1 0 操作碼 尋址方式 寄存器號 尋址方式 寄存器號 | 參閱表4.4PDP/11系列機(jī)的尋址方式,其主要特征是采用寄存器尋址 Pentium的尋址方式。 Pentium的外部地址總線寬度是36位,但它也支持32位的物理地址空間。其有效地址的尋址方式共有九種,參見表4.5 Pentium的尋址方式,例3 一種二地址RS型指令的結(jié)構(gòu)如下所示: 6位 4位 1位 2位 16位 OP -通用寄存器 I X 偏移量D 其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過I,X,D的組合,可構(gòu)成下表所示的尋址方式。 請寫出六種尋址方式的名稱。 尋址方式 I X 有效地址E算法 說明 (1) 0 00 E=D (2) 0 01 E=(PC)+D PC為程序計(jì)數(shù)器 (3) 0 10 E=(R2)+D R2為變址寄存器 (4) 1 11 E=(R3) (5) 1 00 E=(D) (6) 0 11 E=(R1)+D R1為基址寄存器 解: 直接尋址 相對尋址 變址尋址 寄存器間接尋址 間接尋址 基址尋址,例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í)會(huì)等于第三種指令的執(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型指令,不需要訪問存儲(chǔ)器。第二種指令所花時(shí)間最長,因?yàn)槭荝S型指令,需要訪問存儲(chǔ)器,同時(shí)要進(jìn)行尋址方式的變換運(yùn)算(基址或變址),,這也需要時(shí)間。第二種指令的執(zhí)行時(shí)間不會(huì)等于第三種指令,因?yàn)榈谌N指令雖然也訪問存儲(chǔ)器,但節(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 。,44 堆棧尋址方式,堆棧是一組能存儲(chǔ)和取出數(shù)據(jù)的暫時(shí)存儲(chǔ)單元。 堆棧和其他形式的存儲(chǔ)器之間的差別就在于,它們對數(shù)據(jù)的存取方法或?qū)ぶ贩椒ㄓ兴煌?441 串聯(lián)堆棧 串行堆棧是由CPU當(dāng)中的一組專門的寄存器構(gòu)成。串行堆棧的最大優(yōu)點(diǎn)是速度快。 442 存儲(chǔ)器堆棧 串行堆棧存的容量有限,為了突破這種限制,使用了存儲(chǔ)器堆棧,其優(yōu)點(diǎn)在于: l 堆棧能夠具有程序員要求的任意長度; l 只要程序員喜歡,愿意建立多少堆棧,就能建立多少堆棧; l 可以用對存儲(chǔ)器尋址的任何一條指令來對堆棧中的數(shù)據(jù)進(jìn)行尋址。 存儲(chǔ)器堆棧使用CPU中的一個(gè)特殊寄存器作為堆棧指示器。 串聯(lián)堆棧和存儲(chǔ)器堆棧的操作方式不同,在串聯(lián)堆棧中,移動(dòng)的是數(shù)據(jù),而在存儲(chǔ)器堆棧中,移動(dòng)的是棧頂。這主要和兩種堆棧的速度有關(guān)。 堆棧兩種操作:進(jìn)棧 、出棧,45 典型指令,451 指令的分類 一個(gè)較完善的指令系統(tǒng)應(yīng)當(dāng)包括數(shù)據(jù)傳送類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論