第七章 指令系統(tǒng)_第1頁(yè)
第七章 指令系統(tǒng)_第2頁(yè)
第七章 指令系統(tǒng)_第3頁(yè)
第七章 指令系統(tǒng)_第4頁(yè)
第七章 指令系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩61頁(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)介

第7章指令系統(tǒng)7.1機(jī)器指令7.2操作數(shù)類(lèi)型和操作類(lèi)型7.3尋址方式7.4指令格式舉例7.5RISC技術(shù)7.1機(jī)器指令一、指令系統(tǒng)及其發(fā)展一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部機(jī)器指令的集合,稱為該機(jī)的指令系統(tǒng)。指令系統(tǒng)是程序員編制程序的基礎(chǔ),用各種高級(jí)語(yǔ)言編寫(xiě)的程序需通過(guò)編譯轉(zhuǎn)換為機(jī)器可以識(shí)別與執(zhí)行的指令序列。指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要因素,其格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),也直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍。指令系統(tǒng)的發(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á)一二百條,尋址方式也趨多樣化。60年代后期開(kāi)始出現(xiàn)系列計(jì)算機(jī)(指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī))70年代末:大多數(shù)計(jì)算機(jī)的指令系統(tǒng)多達(dá)幾百條。復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)→精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)二、指令的一般格式1.操作碼機(jī)器做什么(1)

長(zhǎng)度固定(2)

長(zhǎng)度可變用于指令字長(zhǎng)較長(zhǎng)的情況如IBM370操作碼8位操作碼分散在指令字的不同字段中機(jī)器對(duì)誰(shuí)操作(其長(zhǎng)度反映指令條數(shù):28=256種操作)操作碼字段地址碼字段(3)擴(kuò)展操作碼技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼15條三地址指令15條二地址指令15條一地址指令16條零地址指令例7.1假設(shè)計(jì)算機(jī)指令字長(zhǎng)16位,操作數(shù)的地址碼是6位,指令有零地址、一地址和二地址三種格式。(1)設(shè)操作碼固定,若零地址指令有P種,一地址指令有Q種,則二地址指令最多有幾種?(2)采用擴(kuò)展操作碼技術(shù),若二地址指令有X種,零地址指令Y種,則一地址指令最多有幾種?分析(1)固定操作碼格式下,地址碼為6位,由二地址碼得操作碼為4位。因操作碼固定,由此所有的操作碼共24=16種指令,而零地址指令和一地址指令各占去P和Q種,則二地址指令有:16-P-QOPA1A2

66416(2)擴(kuò)展操作碼時(shí),二地址指令每少一種則可多構(gòu)成26種一地址指令,一地址指令每少一種則可多構(gòu)成26種零地址指令。二地址指令最多有24

,而現(xiàn)有X種,則可構(gòu)成一地址指令最多有(24

-X)×26

設(shè)一地址指令有M種,則零地址指令有

[(24

-X)×26-M]×26

而現(xiàn)有零地址指令Y種,故有

Y=[(24

-X)×26-M]×26解之,得M=(24

-X)×26-Y×2-62.地址碼(1)四地址(2)三地址OPA1A2A3A486666A1

第一操作數(shù)地址A2

第二操作數(shù)地址A3

結(jié)果的地址A4

下一條指令地址若PC代替A4,則可以擴(kuò)大尋址范圍—3地址(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次訪存(取數(shù)2、存數(shù)1、取指1)4次訪存尋址范圍

26=64尋址范圍

28=256若A3用A1或A2代替則可以擴(kuò)大尋址范圍—2地址設(shè)指令字長(zhǎng)為32位操作碼固定為8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次訪存若ACC代替A1(或A2)則可以擴(kuò)大尋址范圍—1地址若結(jié)果存于ACC(4)一地址(5)零地址OPA1824無(wú)地址碼,指令不需要有操作數(shù)(ACC)OP(A1)ACC2次訪存尋址范圍212=4K尋址范圍224=16M

則3次訪存三、指令字長(zhǎng)指令字長(zhǎng)決定于操作碼的長(zhǎng)度指令字長(zhǎng)=存儲(chǔ)字長(zhǎng)2.指令字長(zhǎng)可變操作數(shù)地址的長(zhǎng)度操作數(shù)地址的個(gè)數(shù)1.指令字長(zhǎng)固定按字節(jié)的倍數(shù)變化小結(jié):當(dāng)用一些硬件資源代替指令字中的地址碼字段后當(dāng)指令的地址字段為寄存器時(shí),如:可擴(kuò)大指令的尋址范圍可縮短指令字長(zhǎng)可減少訪存次數(shù)三地址OPR1,

R2,R3二地址OPR1,R2

一地址OPR1

指令執(zhí)行階段不訪存可縮短指令字長(zhǎng)7.2操作數(shù)類(lèi)型和操作種類(lèi)一、操作數(shù)類(lèi)型地址數(shù)字字符邏輯數(shù)無(wú)符號(hào)整數(shù)定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù)ASCII、BCD邏輯運(yùn)算二、數(shù)據(jù)在存儲(chǔ)器中的存放方式字地址

低字節(jié)

地址字地址

高字節(jié)

地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)1、兩種字地址(門(mén)牌號(hào))表示法:地址(十進(jìn)制)

04812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址8)字節(jié)(地址9)字節(jié)(地址10)字節(jié)(地址11)字(地址4)字(地址0)字節(jié)(地址14)字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)(1)邊界對(duì)準(zhǔn)地址(十進(jìn)制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)(2)邊界未對(duì)準(zhǔn)2、存儲(chǔ)器中數(shù)據(jù)存放兩種方式:(存儲(chǔ)字長(zhǎng)32為例)三、操作類(lèi)型1.

數(shù)據(jù)傳送源目的寄存器寄存器寄存器寄存器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器置“1”,清“0”2.算術(shù)邏輯操作加、減、乘、除、增1、減1、求補(bǔ)、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算與、或、非、異或、位操作、位測(cè)試、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算術(shù)移位4.轉(zhuǎn)移(1)無(wú)條件轉(zhuǎn)移JMP(2)條件轉(zhuǎn)移結(jié)果為零轉(zhuǎn)(Z=1)

JZ結(jié)果溢出轉(zhuǎn)(O=1)JO結(jié)果有進(jìn)位轉(zhuǎn)(C=1)JC跳過(guò)一條指令SKP循環(huán)移位(帶進(jìn)位和不帶進(jìn)位)如300…305306307SKPDZD=0則跳邏輯移位完成觸發(fā)器(3)調(diào)用和返回CALLSUB1.........CALLSUB2…...CALLSUB2…RETURNRETURN......主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB2注解:子程序可以多處被調(diào)用允許嵌套CALL-RETURN配套用返回地址存于R、入口、棧頂INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)與陷阱指令:意外事故的中斷設(shè)置供用戶使用的陷阱指令如8086INTTYPE軟中斷提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用5.輸入輸出一般不提供給用戶直接使用

在出現(xiàn)事故時(shí),由CPU自動(dòng)產(chǎn)生并執(zhí)行(隱指令)INAL,DXINAX,DX入:端口地址CPU的寄存器出:CPU的寄存器端口地址如:如:INAL,nOUTn,AL6.其它:WAITSTOPNOPSET……7.3尋址方式一、指令尋址順序(PC)+1PC跳躍由轉(zhuǎn)移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?二、數(shù)據(jù)尋址

形式地址指令字中的地址,A有效地址操作數(shù)的真實(shí)地址,EA下面約定:

指令字長(zhǎng)=存儲(chǔ)字長(zhǎng)=機(jī)器字長(zhǎng)1.立即尋址

指令執(zhí)行階段不訪存,取出指令就獲得操作數(shù)

A的位數(shù)限制了立即數(shù)的范圍形式地址A操作碼尋址特征OP#A立即尋址特征立即數(shù)可正可負(fù)(補(bǔ)碼)形式地址A就是操作數(shù)尋址特征各種尋址標(biāo)志,如101表示直接尋址2.直接尋址EA=A操作數(shù)主存尋址特征LDAAAACC不需要專(zhuān)門(mén)計(jì)算操作數(shù)地址

A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改(必須修改A)形式地址就是有效地址,形式地址的數(shù)就是操作數(shù)執(zhí)行階段訪問(wèn)一次存儲(chǔ)器3.隱含尋址操作數(shù)地址隱含在操作碼中ADDA操作數(shù)主存尋址特征AACC暫存ALU另一個(gè)操作數(shù)隱含在ACC中如8086MUL指令被乘數(shù)隱含在AX(16位)或AL(8位)中MOVS指令源操作數(shù)的地址隱含在SI中目的操作數(shù)的地址隱含在DI中指令字中少了一個(gè)地址字段,可縮短指令字長(zhǎng)4.間接尋址EA=(A)形式地址內(nèi)的數(shù)是操作數(shù)的有效地址OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴(kuò)大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存

………子程序主程序…8081201202轉(zhuǎn)子程序轉(zhuǎn)子程序間接尋址編程舉例:(A)=81(A)=202……@

間址特征JMP@A…

……………

…………5.寄存器尋址EA=Ri執(zhí)行階段不訪存,只訪問(wèn)寄存器,執(zhí)行速度快OPRi尋址特征寄存器個(gè)數(shù)有限,可縮短指令字長(zhǎng)操作數(shù)………………R0RiRn寄存器有效地址即為寄存器編號(hào),操作數(shù)在該寄存器中。EA=(Ri

)6.寄存器間接尋址

有效地址在寄存器中,操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征

便于編制循環(huán)程序地址………………R0RiRn寄存器寄存器中僅是操作數(shù)的有效地址7.基址尋址(1)采用專(zhuān)用寄存器作基址寄存器EA=(BR)+ABR為基址寄存器隱式OPA操作數(shù)主存尋址特征ALUBR

可擴(kuò)大尋址范圍

便于程序搬家

BR內(nèi)容由操作系統(tǒng)或管理程序確定

在程序的執(zhí)行過(guò)程中BR內(nèi)容不變,形式地址A可變EA(2)

采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0

作基址寄存器顯式由用戶指定哪個(gè)通用寄存器作為基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過(guò)程中R0內(nèi)容不變,形式地址A可變EA8.變址尋址EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX可擴(kuò)大尋址范圍便于處理數(shù)組問(wèn)題

IX的內(nèi)容由用戶給定IX為變址寄存器(專(zhuān)用)在程序的執(zhí)行過(guò)程中IX內(nèi)容可變,形式地址A不變通用寄存器也可以作為變址寄存器EA例設(shè)數(shù)據(jù)塊首地址為D,求N

個(gè)數(shù)的平均值直接尋址變址尋址LDADADDD+1ADDD+2……ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2

條指令共8條指令A(yù)DDX,DMX為變址寄存器D為形式地址(X)和#N

比較(X)+1X結(jié)果不為零則轉(zhuǎn)9.相對(duì)尋址EA=(PC)+AA是相對(duì)于當(dāng)前指令的位移量(可正可負(fù),補(bǔ)碼)

A的位數(shù)決定操作數(shù)的尋址范圍程序浮動(dòng)

廣泛用于轉(zhuǎn)移指令操作數(shù)尋址特征ALUOPA相對(duì)距離A1000PC……主存1000AOPEA

(1)相對(duì)尋址舉例M

隨程序所在存儲(chǔ)空間的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNEMDIV#NSTAANSMM+1M+2M+3而指令BNE與

指令A(yù)DDX,D相對(duì)位移量不變–3*指令BNE操作數(shù)的有效地址為–3*

相對(duì)尋址特征*(2)按字節(jié)尋址的相對(duì)尋址舉例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8設(shè)當(dāng)前指令地址PC=2000H轉(zhuǎn)移后的目的地址為

2008H因?yàn)槿〕鯦MP

*+8

后PC=2002H二字節(jié)指令故JMP

*+8

指令的第二字節(jié)為2008H-2002H=6H例7.2設(shè)相對(duì)尋址的轉(zhuǎn)移指令占3個(gè)字節(jié),第一個(gè)字節(jié)為操作碼,第二、三個(gè)字節(jié)為相對(duì)位移量(補(bǔ)碼表示),數(shù)據(jù)在存儲(chǔ)器中采用低字節(jié)為字地址的存放方式,每當(dāng)CPU從存儲(chǔ)器取出一個(gè)字節(jié)時(shí),即自動(dòng)完成(PC)+1→PC。(1)若PC當(dāng)前值為240D,要求轉(zhuǎn)移到290D,則轉(zhuǎn)移指令的第二、三個(gè)字節(jié)的機(jī)器代碼是什么?(2)若PC當(dāng)前值為240D,要求轉(zhuǎn)移到200D,則轉(zhuǎn)移指令的第二、三個(gè)字節(jié)的機(jī)器代碼是什么?(1)PC當(dāng)前的值為240,當(dāng)取出指令(指令占3個(gè)字節(jié))后,PC=243。要求轉(zhuǎn)移到290,則相對(duì)位移量為290-243=47D=2FH。因數(shù)據(jù)在存儲(chǔ)器采用低字節(jié)地址為字地址,故位移量在存儲(chǔ)器中為2FH,00H,即為指令的第二、三個(gè)字節(jié)的內(nèi)容。(2)PC當(dāng)前的值為240,當(dāng)取出指令(指令占3個(gè)字節(jié))后,PC=243。要求轉(zhuǎn)移到200,則相對(duì)位移量為200-243=-43D=D5H。因數(shù)據(jù)在存儲(chǔ)器采用低字節(jié)地址為字地址,故位移量在存儲(chǔ)器中為D5H,F(xiàn)FH,即為指令的第二、三個(gè)字節(jié)的內(nèi)容。10.堆棧尋址(1)堆棧的特點(diǎn)堆棧硬堆棧軟堆棧多個(gè)寄存器形成一個(gè)堆棧指定的一段連續(xù)存儲(chǔ)空間先進(jìn)后出(一個(gè)入出口)棧頂?shù)刂?/p>

由SP

指出–11FFFH

+12000H進(jìn)棧(SP)–1SP出棧(SP)+1SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進(jìn)棧出棧

1FFFH棧頂

2000H棧頂(2)堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X15例7.3一條雙字長(zhǎng)直接尋址的子程序調(diào)用指令,其第一個(gè)字為操作碼和尋址特征,第二個(gè)字為地址碼5000H。假設(shè)PC當(dāng)前值為2000H,SP的內(nèi)容為0100H,棧頂內(nèi)容為2746H,存儲(chǔ)器按字節(jié)編址,而且進(jìn)棧操作時(shí)執(zhí)行(SP)-△-P,后存入數(shù)據(jù)。試回答下列幾種情況下,PC、SP及棧頂內(nèi)容各為多少?

(1)CALL指令被讀取前。

(2)CALL指令被執(zhí)行后。

(3)子程序返回后。

解CALL指令被讀取前,PC=2000H,SP=0100H,棧頂內(nèi)容為2746H。

(1)CALL指令被執(zhí)行后,由于存儲(chǔ)器按字節(jié)編制,CALL指令供占4個(gè)字節(jié),故程序斷點(diǎn)2004H進(jìn)棧,此時(shí)SP=(SP)-2=00FEH,棧頂內(nèi)容為2004H,PC被更新為子程序入口地址5000H。

(2)子程序返回后,程序斷點(diǎn)出棧,PC=2004H,SP被修改為0100H,棧頂內(nèi)容為2746H。

(3)SP的修改與主存編址方法有關(guān)①按字

編址進(jìn)棧出棧(SP)–

1SP(SP)+

1SP②按字節(jié)

編址存儲(chǔ)字長(zhǎng)16位進(jìn)棧出棧(SP)–2SP(SP)+2SP存儲(chǔ)字長(zhǎng)32位進(jìn)棧出棧(SP)–

4SP(SP)+4SP7.4指令格式舉例一、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類(lèi)型數(shù)據(jù)類(lèi)型指令格式包括指令個(gè)數(shù)及操作的難易程度指令字長(zhǎng)、操作碼位數(shù)尋址方式寄存器個(gè)數(shù)地址碼位數(shù)、地址個(gè)數(shù)尋址方式、是否采用擴(kuò)展操作碼二、指令格式舉例1.PDP–8指令字長(zhǎng)固定12位操作碼間

頁(yè)地址碼訪存類(lèi)指令0235411寄存器類(lèi)指令

111輔助操作碼02311I/O類(lèi)指令

110設(shè)備操作碼0231198000-1011965年,美國(guó)數(shù)字設(shè)備公司推出第一臺(tái)小型機(jī)2.PDP–11源地址OP4661616目的地址存儲(chǔ)器地址1存儲(chǔ)器地址2OP10616目的地址存儲(chǔ)器地址目的地址466源地址OP

106目的地址OP–CODE16OP–CODE指令字長(zhǎng)有16位、32位、48位三種零地址(16位)一地址(16位)二地址RR(16位)二地址RM(32位)二地址MM(48位)擴(kuò)展操作碼技術(shù)PDP系列機(jī)型頂峰3.IBM360OPR1R2

RR格式844OPR1XBD

RX格式844412OPR1R3BD

RS格式844412OPBDI

SI格式88412OPB1D1LB2D2

SS格式88412412二地址RR基址加變址尋址二地址RM三地址RM基址尋址二地址MM基址尋址基址尋址立即數(shù)M第一種采用集成電路(小規(guī)模)芯片的主流機(jī)型4.Intel8086(1)指令字長(zhǎng)(2)地址格式1~6個(gè)字節(jié)MOVWORDPTR[0204],0138H6字節(jié)INCAX1字節(jié)一地址NOP1字節(jié)CALL段內(nèi)調(diào)用

3字節(jié)零地址

5字節(jié)段間調(diào)用寄存器—寄存器寄存器—立即數(shù)寄存器—存儲(chǔ)器ADDAX,BX2字節(jié)ADDAX,[3048H]4字節(jié)ADDAX,3048H

3字節(jié)二地址CALL三、指令格式設(shè)計(jì)舉例例7.4

某機(jī)器字長(zhǎng)為16位,存儲(chǔ)器直接尋址空間為128字,變址時(shí)的位移量為-64-+63,16個(gè)通用寄存器均可作為變址寄存器。設(shè)計(jì)一套指令系統(tǒng)格式,滿足下列尋址類(lèi)型的要求。(1)直接尋址的二地址指令3條;(2)變址尋址的一地址指令6條;(3)寄存器尋址的二地址指令8條;(4)直接尋址的一地址指令12條;(5)零地址指令32條。問(wèn):還有多少種代碼未用?若安排寄存器尋址的一地址指令,還能容納多少條?解:(1)直接尋址的二地址指令中,尋址空間為128字,則需要的地址位為7位;二地址指令的格式OPA1A2

77216操作碼為:00、01、10、11此在指令有3條,故可將OP=11作為下一種指令格式的操作碼擴(kuò)展用。(2)變址尋址的一地址指令6條,變址時(shí)的位移量為-64-+63,則需占用7位;變址尋址要用到寄存器,可用者為16個(gè),則寄存器的編號(hào)需占4位。則變址尋址的一地址指令的格式為:OPRxA2

47516前面已用2位OP,余下編碼11作為擴(kuò)展用,現(xiàn)增加3位OP,其編碼為11

000-11

111,即最多有23=8條指令,但只需6條,故可11110和11111作為下一種指令進(jìn)行擴(kuò)展用。(3)寄存器尋址的二地址指令中,二地址為寄存器的編號(hào),各占4位,此類(lèi)指令的格式為:OPRx1Rx2

44816前一類(lèi)指令OP為5位,其中11110和11111作為擴(kuò)展用,現(xiàn)增加3位OP,即最多有2×23=16條指令,但現(xiàn)只需8條。11110000…11110

11111111000…11111

111可將最末的8個(gè)編碼作為下一類(lèi)指令擴(kuò)展用。(4)直接尋址的一地址指令中,尋址空間為128字,則需要的地址位為7位;此一地址指令的格式OPA1

7

916此類(lèi)指令的OP為9位,前一類(lèi)指令OP為8位,其中有8個(gè)編碼作為擴(kuò)展用,現(xiàn)增加1位OP,即最多有8×21=16條指令,但現(xiàn)只需12條。111110000…11111111

1可將最末的4個(gè)編碼作為下一類(lèi)指令擴(kuò)展用。(5)零地址指令是16位均為操作碼,比上一類(lèi)指令多出7位,而上一類(lèi)指令余下有4個(gè)編碼,則零地址指令最多有4×27=29=512種現(xiàn)只用了32條,余512-32=480條。前一類(lèi)指令余下的4個(gè)編碼為:1111111001111111011111111101111111111111111000000000…111111100001111132條零地址指令的編碼為:其中最末4位用于寄存器的編碼,則用于操作碼的編碼為00010~11111,共30個(gè)編碼。11111110001

00000…11111111111

11111OPRx141216若安排寄存器尋址的一地址指令因余下的480個(gè)編碼為例7.5設(shè)某機(jī)配有基址寄存器和變址寄存器,采用一地址格式的指令系統(tǒng),允許直接和間接尋址,且指令字長(zhǎng)、機(jī)器字長(zhǎng)和存儲(chǔ)字長(zhǎng)均為16位。(1)若采用單字長(zhǎng)指令,共能完成105種操作,則指令可直接尋址的范圍為多少?一次間接尋址的尋址范圍是多少?畫(huà)出其指令格式并說(shuō)明各字段的含義。(2)若存儲(chǔ)字長(zhǎng)不變,可采用什么方法直接訪問(wèn)容量為16MB的主存?解:(1)單字長(zhǎng)指令能完成105種操作,則OP需7位進(jìn)行編碼。因要進(jìn)行直接和間接尋址,設(shè)置有基址寄存器和變址寄存器,故需2位尋址特征位,則指令格式如下:OPMA1

27716因地址編碼占7位,故可直接尋址的范圍是27=128一次間接尋址的地址在寄存器或存儲(chǔ)單元中,其字長(zhǎng)均為16位,故可尋址的范圍是216=65536(2)因該機(jī)字長(zhǎng)為16位=2B,主存容量為16MB=8M字=223字,需要的地址編碼位數(shù)為23位,存儲(chǔ)字長(zhǎng)不變的情況下,可采用雙字長(zhǎng)指令,其格式為:第二個(gè)字為形式地址,此時(shí),用于尋址的地址編碼長(zhǎng)7+16=23位,即可訪問(wèn)16MB的主存。OPMA1

27716A2例7.6某模型機(jī)共有64種操作,操作碼位數(shù)固定,且具有以下特點(diǎn):(1)采用一地址或二地址格式。(2)有寄存器尋址、直接尋址和相對(duì)尋址(位移量為-128~+127)三種尋址方式。(3)有16個(gè)通用寄存器,算術(shù)運(yùn)算和邏輯運(yùn)算均在寄存器中,結(jié)果也在寄存器中。(4)取數(shù)/存數(shù)指令在通用寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。(5)存儲(chǔ)容量為1MB,按字節(jié)編址。要求設(shè)計(jì)算術(shù)邏輯指令、取數(shù)/存數(shù)指令和相對(duì)轉(zhuǎn)移指令的格式,并簡(jiǎn)述理由。解:有三種尋址方式,需2位作為尋址特征位。16個(gè)通用寄存器需4位編碼。(1)算術(shù)邏輯運(yùn)算指令采用寄存器—寄存器的方式。取單字長(zhǎng),其格式為OPM

Ri24616Rj4其中操作碼OP為6位;M為尋址特征位,占2位,可表示三種尋址方式;參與運(yùn)算的寄存器的編碼各占4位。(2)取數(shù)/存數(shù)指令為寄存器與存儲(chǔ)器之間的數(shù)據(jù)傳送,要訪問(wèn)1MB的存儲(chǔ)器,需要的地址編碼位數(shù)為20位,而模型機(jī)采用固定操作碼,OP長(zhǎng)為6位,需取雙字長(zhǎng),即32位。指令格式為:OPM

Ri24616A14A2其中操作碼OP為6位;M為尋址特征位,占2位,可表示三種尋址方式;傳數(shù)的寄存器的編碼占4位,用于尋址的地址編碼位數(shù)為4+16=20位,能尋址1MB的存儲(chǔ)空間。(3)相對(duì)轉(zhuǎn)移指令為一地址格式,因相對(duì)轉(zhuǎn)移量為-128-+127,需8位編碼。指令格式為:OPMA28616其中操作碼OP為6位;M為尋址特征位,占2位,可表示三種尋址方式;位移量占8位。例7.7設(shè)某機(jī)共能完成110種操作,CPU有8個(gè)通用寄存器(16位),主存容量為4M字,采用寄存器—存儲(chǔ)器型指令。(1)欲使指令可直接訪問(wèn)主存的任一地址,指令字長(zhǎng)應(yīng)取多少位?畫(huà)出指令格式。(2)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論