《計算機(jī)原理課件:07指令系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《計算機(jī)原理課件:07指令系統(tǒng)(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、17.指令系統(tǒng)指令系統(tǒng)1.機(jī)器指令2.操作數(shù)類型和操作類型3.尋址方式4.指令格式舉例5.RISC技術(shù)7.1 機(jī)器指令2一、指令的一般格式 操作碼字段 地址碼字段1.操作碼反映機(jī)器做什么操作(1)長度固定(2)長度可變用于指令字長較長的情況,RISC如 IBM 370操作碼 8 位操作碼分散在指令字的不同字段中3(3)擴(kuò)展操作碼技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A31111111111110000000111101111111111111111111111111111111111110000
2、00011111111111111111111111111111A3A3A30000000111104 位操作碼8 位操作碼12 位操作碼16 位操作碼最多15條三地址指令最多15條二地址指令最多15條一地址指令16條零地址指令4(3)擴(kuò)展操作碼技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000
3、000111104 位操作碼8 位操作碼12 位操作碼16 位操作碼三地址指令操作碼每減少一種可多構(gòu)成24 種二地址指令二地址指令操作碼每減少一種可多構(gòu)成24 種一地址指令52.地址碼(1)四地址(2)三地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作數(shù)地址A2 第二操作數(shù)地址A3 結(jié)果的地址A4 下一條指令地址若 PC 代替 A4(A1)OP(A2)A38 8 8 8 OP A1 A2 A3(A1)OP(A2)A34 次訪存4 次訪存尋址范圍 26=64尋址范圍 28=256若 A3 用 A1 或 A2 代替設(shè)指令字長為 32 位操作碼固定為 8 位6(3)二地址OP A1
4、A28 12 12(A1)OP(A2)A1(A1)OP(A2)A2或4 次訪存若ACC 代替 A1(或A2)若結(jié)果存于 ACC (4)一地址(5)零地址OP A18 24無地址碼(ACC)OP(A1)ACC2 次訪存尋址范圍 212=4 K尋址范圍 224=16 M 3次訪存7二、指令字長指令字長決定于操作碼的長度指令字長=存儲字長2.指令字長 可變操作數(shù)地址的長度操作數(shù)地址的個數(shù)1.指令字長 固定按字節(jié)的倍數(shù)變化8小結(jié) 當(dāng)用一些硬件資源代替指令字中的地址碼字段后 當(dāng)指令的地址字段為寄存器時 可擴(kuò)大指令的尋址范圍 可縮短指令字長 可減少訪存次數(shù) 三地址 OP R1,R2,R3 二地址 OP R
5、1,R2 一地址 OP R1 指令執(zhí)行階段不訪存 可縮短指令字長97.2 操作數(shù)類型和操作種類一、操作數(shù)類型地址數(shù)字字符邏輯數(shù)無符號整數(shù)定點數(shù)、浮點數(shù)、十進(jìn)制數(shù)ASCII邏輯運算二、數(shù)據(jù)在存儲器中的存放方式字地址 為 低字節(jié) 地址字地址 為 高字節(jié) 地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)10存儲器中的數(shù)據(jù)存放(存儲字長為 32 位)地址(十進(jìn)制)0 4 812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址 8)字節(jié)(地址 9)字節(jié)(地址10)字節(jié)(地址11)字(地址 4)字
6、(地址 0)字節(jié)(地址14)字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)邊界對準(zhǔn)地址(十進(jìn)制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)邊界未對準(zhǔn) 11三、操作類型1.數(shù)據(jù)傳送源目的寄存器寄存器寄存器寄存器存儲器存儲器存儲器存儲器置“1”,清“0”2.算術(shù)邏輯操作加、減、乘、除、增 1、減 1、求補、浮點運算、十進(jìn)制運算與、或、非、異或、位操作、位測試、位清除、位求反如 8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM
7、 AAD AND OR NOT XOR TEST123.移位操作算術(shù)移位4.轉(zhuǎn)移(1)無條件轉(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跳過一條指令 SKP循環(huán)移位(帶進(jìn)位和不帶進(jìn)位)如300305306307SKP DZ D=0 則跳邏輯移位完成觸發(fā)器13(3)調(diào)用和返回CALL SUB1.CALL SUB2.CALL SUB2RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB2.14IN AX,nOUT DX,ALOUT n,
8、AXOUT DX,AX(4)陷阱(Trap)與陷阱指令意外事故的中斷 設(shè)置供用戶使用的陷阱指令如 8086 INT TYPE 軟中斷提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用5.輸入輸出 一般不提供給用戶直接使用 在出現(xiàn)事故時,由 CPU 自動產(chǎn)生并執(zhí)行(隱指令)IN AL,DXIN AX,DX入 端口地址 CPU 的寄存器出 CPU 的寄存器 端口地址如如IN AL,nOUT n,AL157.3 尋 址 方 式尋址方式 確定 本條指令 的 操作數(shù)地址下一條 欲執(zhí)行 指令 的 指令地址指令尋址數(shù)據(jù)尋址尋址方式16一、指令尋址順序(PC)+1 PC跳躍由轉(zhuǎn)移指令指出LDA 1000ADD 1001D
9、EC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?17二、數(shù)據(jù)尋址 形式地址 指令字中的地址 有效地址 操作數(shù)的真實地址 約定 指令字長=存儲字長=機(jī)器字長1.立即尋址 指令執(zhí)行階段不訪存 A 的位數(shù)限制了立即數(shù)的范圍形式地址 A操作碼尋址特征OP#A立即尋址特征立即數(shù) 可正可負(fù) 補碼形式地址 A 就是操作數(shù)182.直接尋址EA=A操作數(shù)主存尋址特征LDAAAACC 執(zhí)行階段訪問一次存儲器 A 的位數(shù)決定了該指令操作數(shù)的尋址范圍 操作數(shù)的地址不
10、易修改(必須修改A)有效地址由形式地址直接給出193.隱含尋址操作數(shù)地址隱含在操作碼中ADDA操作數(shù)主存尋址特征AACC暫存ALU另一個操作數(shù)隱含在 ACC 中如 8086MUL 指令被乘數(shù)隱含在 AX(16位)或 AL(8位)中MOVS 指令源操作數(shù)的地址隱含在 SI 中目的操作數(shù)的地址隱含在 DI 中 指令字中少了一個地址字段,可縮短指令字長204.間接尋址EA=(A)有效地址由形式地址間接提供OPA尋址特征AEA主存EAA1EA A1主存 EA10 執(zhí)行指令階段 2 次訪存 可擴(kuò)大尋址范圍 便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存21 子程序主程序80812012
11、02調(diào)用子程序調(diào)用子程序間接尋址編程舉例(A)=81(A)=202 間址特征JMP A 225.寄存器尋址EA=Ri 執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快OPRi尋址特征 寄存器個數(shù)有限,可縮短指令字長操作數(shù)R0RiRn寄存器有效地址即為寄存器編號23EA=(Ri)6.寄存器間接尋址 有效地址在寄存器中,操作數(shù)在存儲器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征 便于編制循環(huán)程序地址R0RiRn寄存器有效地址在寄存器中247.基址尋址(1)采用專用寄存器作基址寄存器EA=(BR)+ABR 為基址寄存器OPA操作數(shù)主存尋址特征ALUBR 可擴(kuò)大尋址范圍 有利于多道程序 BR 內(nèi)容由操作系統(tǒng)或管
12、理程序確定 在程序的執(zhí)行過程中 BR 內(nèi)容不變,形式地址 A 可變25(2)采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0 作基址寄存器 由用戶指定哪個通用寄存器作為基址寄存器通用寄存器R0Rn-1R1 基址寄存器的內(nèi)容由操作系統(tǒng)確定 在程序的執(zhí)行過程中 R0 內(nèi)容不變,形式地址 A 可變268.變址尋址EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX 可擴(kuò)大尋址范圍 便于處理數(shù)組問題 IX 的內(nèi)容由用戶給定 IX 為變址寄存器(專用)在程序的執(zhí)行過程中 IX 內(nèi)容可變,形式地址 A 不變通用寄存器也可以作為變址寄存器27例 設(shè)數(shù)據(jù)塊首地址為 D,求 N 個數(shù)的平均值直接
13、尋址變址尋址LDA DADD D+1ADD D+2ADD D+(N-1)DIV#NSTA ANSLDA#0LDX#0INXCPX#NBNE MDIV#NSTA ANS共 N+2 條指令共 8 條指令A(yù)DD X,DMX 為變址寄存器D 為形式地址(X)和#N 比較(X)+1 X結(jié)果不為零則轉(zhuǎn)289.相對尋址 EA=(PC)+AA 是相對于當(dāng)前指令的位移量(可正可負(fù),補碼)A 的位數(shù)決定操作數(shù)的尋址范圍 程序浮動 廣泛用于轉(zhuǎn)移指令操作數(shù)尋址特征ALUOPA相對距離 A1000PC 主存1000AOP29(1)相對尋址舉例M 隨程序所在存儲空間的位置不同而不同EA=(M+3)3=M 3*LDA#0L
14、DX#0ADD X,DINXCPX#NBNE MDIV#NSTA ANSMM+1M+2M+3而指令 BNE 與 指令 ADD X,D 相對位移量不變 3*指令 BNE操作數(shù)的有效地址為 3*相對尋址特征*30(2)按字節(jié)尋址的相對尋址舉例OP位移量2000 H2008 H8JMP*+8OP06 H2000 H2008 H8設(shè) 當(dāng)前指令地址 PC=2000H轉(zhuǎn)移后的目的地址為 2008H因為 取出 JMP*+8 后 PC=2002H二字節(jié)指令故 JMP*+8 指令 的第二字節(jié)為 2008H-2002H=06H3110.堆棧尋址(1)堆棧的特點堆棧硬堆棧軟堆棧多個寄存器指定的存儲空間先進(jìn)后出(一個
15、入出口)棧頂?shù)刂?由 SP 指出 11FFFH+12000 H進(jìn)棧 (SP)1 SP出棧 (SP)+1 SP棧頂棧底2000 HSP2000 H1FFF HSP1FFFH棧頂棧底進(jìn)棧出棧 1FFF H棧頂 2000 H棧頂32(2)堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSH A 前PUSH A 后POP A 前POP A 后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X1533(3)SP 的修改與主存編址方法有關(guān) 按 字 編址進(jìn)棧出棧(SP)1 SP(SP)+1 S
16、P 按 字節(jié) 編址存儲字長 16 位進(jìn)棧出棧(SP)2 SP(SP)+2 SP存儲字長 32 位進(jìn)棧出棧(SP)4 SP(SP)+4 SP347.4 指令格式舉例一、設(shè)計指令格式時應(yīng)考慮的各種因素1.指令系統(tǒng)的 兼容性(向上兼容)2.其他因素操作類型數(shù)據(jù)類型指令格式包括指令個數(shù)及操作的難易程度指令字長是否固定尋址方式寄存器個數(shù)地址碼位數(shù)、地址個數(shù)、尋址方式類型操作碼位數(shù)、是否采用擴(kuò)展操作碼技術(shù),確定哪些數(shù)據(jù)類型可參與操作指令尋址、操作數(shù)尋址寄存器的多少直接影響指令的執(zhí)行時間35二、指令格式舉例1.PDP 8指令字長固定 12 位 操作碼 間 頁 地址碼訪存類指令0235411寄存器類指令 1
17、1 1 輔助操作碼02 311I/O 類指令 1 1 0 設(shè)備 操作碼02 31198采用擴(kuò)展操作碼技術(shù)362.PDP 11源地址OP4 6 6 16 16目的地址存儲器地址1存儲器地址2OP10 6 16目的地址存儲器地址目的地址4 6 6源地址OP 10 6目的地址OP-CODE16OP-CODE指令字長有 16 位、32 位、48 位三種零地址(16 位)一地址(16 位)二地址 R R(16 位)二地址 R M(32 位)二地址 M M(48 位)擴(kuò)展操作碼技術(shù)373.IBM 360OPR1R2 RR格式8 4 4OPR1XBD RX格式8 4 4 4 12OPR1R3BD RS格式8
18、 4 4 4 12OPBDI SI格式8 8 4 12二地址 R R基址加變址尋址二地址 R M三地址 R M基址尋址二地址 M M基址尋址基址尋址立即數(shù) MOPB1D1LB2D2 SS格式88412412384.Intel 8086(1)指令字長(2)地址格式1 6 個字節(jié)MOV WORD PTR0204,0138H 6 字節(jié)INC AX 1 字節(jié)一地址NOP 1 字節(jié)CALL段內(nèi)調(diào)用 3 字節(jié)零地址 5 字節(jié)段間調(diào)用寄存器 寄存器寄存器 立即數(shù)寄存器 存儲器ADD AX,BX 2 字節(jié)ADD AX,3048H 4 字節(jié)ADD AX,3048H 3 字節(jié)二地址CALL397.5 RISC 技
19、 術(shù) 一、RISC 的產(chǎn)生和發(fā)展 80 20 規(guī)律 典型程序中 80%的語句僅僅使 用處理機(jī)中 20%的指令 執(zhí)行頻度高的簡單指令,因復(fù)雜指令 的存在,執(zhí)行速度無法提高RISC(Reduced Instruction Set Computer)CISC(Complex Instruction Set Computer)RISC技術(shù) 能否用 20%的簡單指令組合不常用的 80%的指令功能?40二、RISC 的主要特征 選用使用頻度較高的一些 簡單指令,復(fù)雜指令的功能由簡單指令來組合 指令 長度固定、指令格式種類少、尋址方式少 只有 LOAD/STORE 指令訪存 采用 流水技術(shù) 一個時鐘周期 內(nèi)
20、完成一條指令 采用 組合邏輯 實現(xiàn)控制器 CPU 中有多個 通用 寄存器 采用 優(yōu)化 的 編譯 程序 41三、CISC 的主要特征 系統(tǒng)指令 復(fù)雜龐大,各種指令使用頻度相差大 指令 長度不固定、指令格式種類多、尋址方式多 訪存 指令 不受限制 大多數(shù)指令需要 多個時鐘周期 執(zhí)行完畢 采用 微程序 控制器 CPU 中設(shè)有 專用寄存器 難以 用 優(yōu)化編譯 生成高效的目的代碼 42四、RISC和CISC 的比較 1.RISC更能 充分利用 VLSI 芯片的面積2.RISC 更能 提高計算機(jī)運算速度指令數(shù)、指令格式、尋址方式少,通用 寄存器多,采用 組合邏輯,便于實現(xiàn) 指令流水3.RISC 便于設(shè)計,可 降低成本,提高 可靠性4.RISC 有利于編譯程序代碼優(yōu)化 5.RISC 不易 實現(xiàn) 指令系統(tǒng)兼容