計(jì)算機(jī)組成原理第7章.ppt
《計(jì)算機(jī)組成原理第7章.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)組成原理第7章.ppt(58頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第七章 指 令 系 統(tǒng),指令系統(tǒng),CPU的主要工作是執(zhí)行指令,指令是指揮計(jì)算機(jī)執(zhí)行某些操作的命令,一臺(tái)計(jì)算機(jī)所有指令的集合構(gòu)成該計(jì)算機(jī)的指令系統(tǒng)。,一、機(jī)器指令的格式,一條指令就是機(jī)器語言的一個(gè)語句,由一組二進(jìn)制代碼來表示。一條指令由兩部分構(gòu)成:,操作碼:指明指令的操作性質(zhì)及功能。 地址碼:指明操作數(shù)的地址。 一條指令必須有一個(gè)操作碼,可能包含幾個(gè)地址碼。,1、操作碼,指令系統(tǒng)中的每一條指令都有一個(gè)唯一確定的操作碼,反應(yīng)不同的操作功能。 指令操作碼的編碼可以分為定長(zhǎng)編碼和變長(zhǎng)編碼。,(1)定長(zhǎng)編碼,這是一種最簡(jiǎn)單的編碼方式,操作碼的位數(shù)和位置固定,指令長(zhǎng)度不固定。 操作碼不同涉及的操作數(shù)的個(gè)數(shù)不同,所以指令的長(zhǎng)度隨操作碼而變化。 例如,IBM370機(jī)就是采用這種定長(zhǎng)操作碼格式。 IBM 370機(jī)(字長(zhǎng)32位)的指令可分為三種不同的長(zhǎng)度,不論指令的長(zhǎng)度有多少位,其中的操作碼字段一律都是8位。,,IBM 370機(jī)的指令格式,,(2)變長(zhǎng)編碼,這是一種操作碼長(zhǎng)度不固定,而指令長(zhǎng)度固定的設(shè)計(jì)方法。 PDP-11機(jī)(字長(zhǎng)16位)的指令分為單字長(zhǎng)、兩字長(zhǎng)、三字長(zhǎng)三種,操作碼字段占4~16位不等,可遍及整個(gè)指令長(zhǎng)度。 顯然,操作碼字段位數(shù)的不固定將增加指令譯碼的難度,使控制器的設(shè)計(jì)復(fù)雜化。但是,它有效地利用每個(gè)二進(jìn)制位。,PDP-11機(jī)的指令格式,,(3) 擴(kuò)展操作碼技術(shù),操作碼的位數(shù)隨地址數(shù)的減少而增加,4 位操作碼,8 位操作碼,12 位操作碼,16 位操作碼,15條三地址指令,15條二地址指令,15條一地址指令,16條零地址指令,7.1,2. 地址碼,(1) 四地址,(2) 三地址,8 6 6 6 6,A1 第一操作數(shù)地址,A2 第二操作數(shù)地址,A3 結(jié)果的地址,A4 下一條指令地址,若 PC 代替 A4,8 8 8 8,4 次訪存,4 次訪存,尋址范圍 26 = 64,尋址范圍 28 = 256,若 A3 用 A1 或 A2 代替,7.1,(3) 二地址,8 12 12,或,4 次訪存,若ACC 代替 A1(或A2),若結(jié)果存于 ACC,(4) 一地址,(5) 零地址,8 24,無地址碼,2 次訪存,尋址范圍 212 = 4 K,尋址范圍 224 = 16 M,3次訪存,7.1,二、指令字長(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ù)變化,,7.1,小結(jié),當(dāng)用一些硬件資源代替指令字中的地址碼字段后,當(dāng)指令的地址字段為寄存器時(shí),可擴(kuò)大指令的尋址范圍,可縮短指令字長(zhǎng),可減少訪存次數(shù),三地址 OP R1, R2, R3,二地址 OP R1, R2,一地址 OP R1,指令執(zhí)行階段不訪存,可縮短指令字長(zhǎng),7.1,7.2 操作數(shù)類型和操作種類,一、操作數(shù)類型,無符號(hào)整數(shù),定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù),ASCII,邏輯運(yùn)算,二、數(shù)據(jù)在存儲(chǔ)器中的存放方式,字地址 為 低字節(jié) 地址,字地址 為 高字節(jié) 地址,存儲(chǔ)器中的數(shù)據(jù)存放(存儲(chǔ)字長(zhǎng)為 32 位),,,,,▲,▲,7.2,三、操作類型,1. 數(shù)據(jù)傳送,寄存器,寄存器,寄存器,寄存器,存儲(chǔ)器,存儲(chǔ)器,存儲(chǔ)器,存儲(chǔ)器,置“1”,清“0”,2. 算術(shù)邏輯操作,加、減、乘、除、增 1、減 1、求補(bǔ)、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算,與、或、非、異或、位操作、位測(cè)試、位清除、位求反,如 8086,MOVE,STORE,LOAD,MOVE,PUSH,POP,例如,MOVE,MOVE,7.2,ADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST,3. 移位操作,算術(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)位),如,邏輯移位,完成觸發(fā)器,7.2,SAL,SAR SHL ,SHR,RCL,RCR ROL ,ROR,8086cpu的標(biāo)志寄存器,標(biāo)志寄存器,FLAGS為標(biāo)志寄存器,又稱PSW(Program Status Word),即程序狀態(tài)寄存器。這是一個(gè)存放條件碼標(biāo)志、控制標(biāo)志和系統(tǒng)標(biāo)志的寄存器。,① 條件碼標(biāo)志 包括以下6位: OF(Over Flow Flag) 溢出標(biāo)志。(示例) 將參加算術(shù)運(yùn)算的數(shù)看作帶符號(hào)數(shù),如運(yùn)算結(jié)果超出補(bǔ)碼表示數(shù)的范圍N,即溢出時(shí),則OF置1;否則OF置0。對(duì)于字節(jié)運(yùn)算有?128≤N≤+127;對(duì)于字運(yùn)算有?32768≤N≤+32767。 SF(Sign Flag) 符號(hào)標(biāo)志。(示例) 把指令執(zhí)行結(jié)果看作帶符號(hào)數(shù),如結(jié)果為負(fù),則SF置1;結(jié)果為正,則SF置0。 ZF(Zero Flag) 零標(biāo)志。(示例) 如指令執(zhí)行結(jié)果各位全為0時(shí),則ZF置1;否則ZF置0。,8086 CPU中標(biāo)志寄存器的內(nèi)容:,CF(Carry Flag) 進(jìn)位標(biāo)志。 (示例) (與OF的區(qū)別) 在進(jìn)行算術(shù)運(yùn)算時(shí),如最高位(對(duì)字操作是第15位,對(duì)字節(jié)操作是第7位)產(chǎn)生進(jìn)位或借位時(shí),則CF置1;否則置0。在移位類指令中,CF用來存放移出的代碼(0或1)。 AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志 (與CF的區(qū)別) 在進(jìn)行算術(shù)運(yùn)算時(shí),如低字節(jié)中低4位(第3位)產(chǎn)生進(jìn)位或借位時(shí),則AF置1;否則AF置0。AF可用于十進(jìn)制運(yùn)算的校正。 PF(Parity Flag) 奇偶標(biāo)志。 (示例) 用來為機(jī)器中傳送信息時(shí)可能產(chǎn)生的代碼出錯(cuò)情況提供檢驗(yàn)條件。當(dāng)運(yùn)算結(jié)果中1的個(gè)數(shù)為偶數(shù)時(shí)置1,否則置0。,,示例指令1: mov al,98 add al,99 執(zhí)行后將產(chǎn)生溢出。因?yàn)閍dd al,99 進(jìn)行的有符號(hào)數(shù)運(yùn)算是:(al)=(al)+99=98+99=197 而結(jié)果197超出了機(jī)器所能表示的8位有符號(hào)數(shù)的范圍:-128~127。 示例指令2: mov al,0F0H ;0F0H,為有符號(hào)數(shù)-16的補(bǔ)碼 add al,88H ;88H,為有符號(hào)數(shù)-120的補(bǔ)碼 執(zhí)行后將產(chǎn)生溢出。 因?yàn)閍dd al,88H進(jìn)行的有符號(hào)數(shù)運(yùn)算是: (al)=(al)+(-120)=(-16)+(-120)=-136 而結(jié)果-136超出了機(jī)器所能表示的8位有符號(hào)數(shù)的范圍:-128~127。,OF示例,,計(jì)算機(jī)中通常用補(bǔ)碼來表示有符號(hào)數(shù)據(jù)。所以計(jì)算機(jī)中的一個(gè)數(shù)據(jù)可以看作是有符號(hào)數(shù),也可以看成是無符號(hào)數(shù) 指令示例 mov al,10000001B add al,1 結(jié)果: (al)=10000010B ?將add指令進(jìn)行的運(yùn)算當(dāng)作無符號(hào)數(shù)的運(yùn)算,那么add指令相當(dāng)于計(jì)算129+1,結(jié)果為130(10000010B);雖然運(yùn)算影響了SF的值,但是SF的值則沒有意義。,SF示例,?將add指令進(jìn)行的運(yùn)算當(dāng)作有符號(hào)數(shù)的運(yùn)算,那么add指令相當(dāng)于計(jì)算-127+1,結(jié)果為-126(10000010B)。這是結(jié)果為負(fù)數(shù),則SF=1,所以通過SF來得知結(jié)果的正負(fù)。 總之,SF 標(biāo)志就是CPU對(duì)有符號(hào)數(shù)運(yùn)算結(jié)果的一種記錄 ,它記錄數(shù)據(jù)的正負(fù)。,,指令示例: mov ax,1 sub ax,1 ? 指令執(zhí)行后,結(jié)果為0,則ZF =1。 mov ax,2 sub ax,1 ? 指令執(zhí)行后,結(jié)果為1,則ZF = 0。,ZF示例,,比如,兩個(gè)8 位數(shù)據(jù):98H+98H,將產(chǎn)生進(jìn)位。 mov al,98H add al,al ;執(zhí)行后: (al)=30H,CF=1, add al,al ;執(zhí)行后:(al)=60H,CF=0, ;CF記錄了最高有效位向更高位的進(jìn)位值 比如,兩個(gè) 8 位數(shù)據(jù):97H-98H,將產(chǎn)生借位,借位后,相當(dāng)于計(jì)算197H-98H。 mov al,98H sub al,al ;執(zhí)行后: (al)=FFH,CF=1, sub al,al ;執(zhí)行后: (al)=00H,CF=0, ;CF記錄了最高有效位向更高位的借位值,CF示例,,示例 指令:mov al,1 add al,10 執(zhí)行后,結(jié)果為00001011B,其中有3(奇數(shù))個(gè)1,則PF=0; 指令:mov al,1 or al,10 執(zhí)行后,結(jié)果為00000011B,其中有2(偶數(shù))個(gè)1,則PF=1;,PF示例,,CF是對(duì)無符號(hào)數(shù)運(yùn)算有意義的標(biāo)志位; OF是對(duì)有符號(hào)數(shù)運(yùn)算有意義的標(biāo)志位。 比如: mov al,98 add al,99 add指令執(zhí)行后:CF=0,OF=1。 總的來說, 對(duì)于無符號(hào)數(shù)運(yùn)算,CPU用CF位來記錄是否產(chǎn)生了進(jìn)位; 對(duì)于有符號(hào)數(shù)運(yùn)算,CPU 用 OF 位來記錄是否產(chǎn)生了溢出,還要用SF位來記錄結(jié)果的符號(hào)。 它們之間沒有任何關(guān)系。,OF與CF的區(qū)別,,OF與CF的區(qū)別,區(qū)別: 8位運(yùn)算或16位運(yùn)算時(shí)如果有進(jìn)位或借位CF等于1。 AF也一樣是進(jìn)位或借位的標(biāo)志,只不過它是4位運(yùn)算時(shí)的進(jìn)位或借位的標(biāo)志。 示例:兩個(gè)8位寄存器,AL=1000 0001,BL=1000 0011; add AL BL ;結(jié)果CF=1,AF=0 因?yàn)锳L和BL的低四位相加沒有進(jìn)位 AF是為了在BCD碼運(yùn)算時(shí),要用到的,因?yàn)锽CD碼是以4位表示的。,,② 控制標(biāo)志位1位 DF(Direction Flag)方向標(biāo)志,用來在串處理指令中控制處理信息的方向。 當(dāng)DF位為1時(shí),每次操作后使變址寄存器SI和DI減小,這樣就使串處理從高地址向低地址方向處理。當(dāng)DF位為0時(shí),則使SI和DI增大,使串處理從低地址向高地址方向處理。 ③ 系統(tǒng)標(biāo)志位: TF(Trap Flag) 陷阱標(biāo)志,用于調(diào)試時(shí)的單步方式操作。 IF(Interrupt Flag) 中斷標(biāo)志 。,在調(diào)試程序DEBUG中提供了測(cè)試標(biāo)志位的手段,用符號(hào)表示某些標(biāo)志位的值:,,(3) 調(diào)用和返回,,CALL SUB1,CALL SUB2,CALL SUB2,RETURN,RETURN,7.2,IN AX, n,OUT DX, AL,OUT n, AX,OUT DX, AX,(4) 陷阱(Trap)與陷阱指令,意外事故的中斷,設(shè)置供用戶使用的陷阱指令,如 8086 INT TYPE 軟中斷,提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用,5. 輸入輸出,IN AL, DX,IN AX, DX,7.2,如,如,IN AL, n,OUT n, AL,7.3 尋 址 方 式,尋址方式,確定 本條指令 的 操作數(shù)地址 下一條 欲執(zhí)行 指令 的 指令地址,,尋址方式,7.3 尋 址 方 式,一、指令尋址,順序,跳躍,由轉(zhuǎn)移指令指出,二、數(shù)據(jù)尋址,形式地址,指令字中的地址,有效地址,操作數(shù)的真實(shí)地址,約定,指令字長(zhǎng) = 存儲(chǔ)字長(zhǎng) = 機(jī)器字長(zhǎng),1. 立即尋址,指令執(zhí)行階段不訪存,A 的位數(shù)限制了立即數(shù)的范圍,可正可負(fù) 補(bǔ)碼,形式地址 A 就是操作數(shù),7.3,2. 直接尋址,EA = A,,尋址特征,,,A,,ACC,,執(zhí)行階段訪問一次存儲(chǔ)器,A 的位數(shù)決定了該指令操作數(shù)的尋址范圍,操作數(shù)的地址不易修改(必須修改A),有效地址由形式地址直接給出,7.3,3. 隱含尋址,操作數(shù)地址隱含在操作碼中,,尋址特征,,,A,,ACC,暫存,,,另一個(gè)操作數(shù) 隱含在 ACC 中,如 8086,MUL 指令,被乘數(shù)隱含在 AX(16位)或 AL(8位)中,MOVS 指令,源操作數(shù)的地址隱含在 SI 中,目的操作數(shù)的地址隱含在 DI 中,指令字中少了一個(gè)地址字段,可縮短指令字長(zhǎng),,,,,,7.3,4. 間接尋址,EA =(A),有效地址由形式地址間接提供,,尋址特征,,,A,,,EA,,,A1,,,EA,執(zhí)行指令階段 2 次訪存,可擴(kuò)大尋址范圍,便于編制程序,,尋址特征,,,A,一次間址,多次間址,操作數(shù),操作數(shù),多次訪存,7.3,… ……,,,,,…,轉(zhuǎn) 子程序,轉(zhuǎn) 子程序,間接尋址編程舉例,(A) = 81,,(A) = 202,@ 間址特征,7.3,JMP @ A,5. 寄存器尋址,EA = Ri,執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快,,尋址特征,,,寄存器個(gè)數(shù)有限,可縮短指令字長(zhǎng),有效地址即為寄存器編號(hào),7.3,EA = ( Ri ),6. 寄存器間接尋址,有效地址在寄存器中, 操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存,,,尋址特征,,,便于編制循環(huán)程序,有效地址在寄存器中,7.3,7. 基址尋址,(1) 采用專用寄存器作基址寄存器,EA = ( BR ) + A,BR 為基址寄存器,,尋址特征,,,,,,可擴(kuò)大尋址范圍,便于程序搬家,BR 內(nèi)容由操作系統(tǒng)或管理程序確定,在程序的執(zhí)行過程中 BR 內(nèi)容不變,形式地址 A 可變,7.3,(2) 采用通用寄存器作基址寄存器,,尋址特征,,,,,R0 作基址寄存器,由用戶指定哪個(gè)通用寄存器作為基址寄存器,基址寄存器的內(nèi)容由操作系統(tǒng)確定,在程序的執(zhí)行過程中 R0 內(nèi)容不變,形式地址 A 可變,7.3,8. 變址尋址,EA = ( IX ) +A,,尋址特征,,,,,可擴(kuò)大尋址范圍,便于處理數(shù)組問題,IX 的內(nèi)容由用戶給定,IX 為變址寄存器(專用),在程序的執(zhí)行過程中 IX 內(nèi)容可變,形式地址 A 不變,,通用寄存器也可以作為變址寄存器,7.3,例,設(shè)數(shù)據(jù)塊首地址為 D,求 N 個(gè)數(shù)的平均值,直接尋址,變址尋址,LDA D,ADD D + 1,ADD D + 2,……,ADD D + ( N -1 ),DIV # N,STA ANS,LDA # 0,LDX # 0,INX,CPX # N,BNE M,DIV # N,STA ANS,共 N + 2 條指令,共 8 條指令,,X 為變址寄存器,D 為形式地址,(X) 和 #N 比較,結(jié)果不為零則轉(zhuǎn),7.3,9. 相對(duì)尋址,EA = ( PC ) + A,A 是相對(duì)于當(dāng)前指令的位移量(可正可負(fù),補(bǔ)碼),A 的位數(shù)決定操作數(shù)的尋址范圍,程序浮動(dòng),廣泛用于轉(zhuǎn)移指令,操作數(shù),,尋址特征,,,相對(duì)距離 A,,,,,,7.3,(1) 相對(duì)尋址舉例,,M 隨程序所在存儲(chǔ)空間的位置不同而不同,EA = ( M+3 ) – 3 = M,,,7.3,(2) 按字節(jié)尋址的相對(duì)尋址舉例,,JMP * + 8,設(shè) 當(dāng)前指令地址 PC = 2000H,轉(zhuǎn)移后的目的地址為 2008H,因?yàn)?取出 JMP * + 8 后 PC = 2002H,二字節(jié)指令,故 JMP * + 8 指令 的第二字節(jié)為 2008H - 2002H = 6H,7.3,10. 堆棧尋址,(1) 堆棧的特點(diǎn),堆棧,多個(gè)寄存器,指定的存儲(chǔ)空間,先進(jìn)后出(一個(gè)入出口),棧頂?shù)刂?由 SP 指出,– 1,1FFFH,+1,2000 H,,,,1FFF H,2000 H,7.3,(2) 堆棧尋址舉例,PUSH A 前,PUSH A 后,POP A 前,POP A 后,7.3,(3) SP 的修改與主存編址方法有關(guān),① 按 字 編址,進(jìn)棧,出棧,② 按 字節(jié) 編址,存儲(chǔ)字長(zhǎng) 16 位,進(jìn)棧,出棧,存儲(chǔ)字長(zhǎng) 32 位,進(jìn)棧,出棧,7.3,7.4 指令格式舉例,一、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素,1. 指令系統(tǒng)的 兼容性,(向上兼容),2. 其他因素,操作類型,數(shù)據(jù)類型,指令格式,包括指令個(gè)數(shù)及操作的難易程度,指令字長(zhǎng)、操作碼位數(shù),尋址方式,寄存器個(gè)數(shù),地址碼位數(shù)、地址個(gè)數(shù),尋址方式、是否采用擴(kuò)展操作碼,二、指令格式舉例,1. PDP – 8,指令字長(zhǎng)固定 12 位,7.4,2. PDP – 11,指令字長(zhǎng)有 16 位、32 位、48 位三種,零地址 (16 位),一地址 (16 位),擴(kuò)展操作碼技術(shù),7.4,3. IBM 360,7.4,4. Intel 8086,(1) 指令字長(zhǎng),(2) 地址格式,1 ~ 6 個(gè)字節(jié),MOV WORD PTR[0204], 0138H 6 字節(jié),INC AX 1 字節(jié),一地址,NOP 1 字節(jié),CALL,零地址,寄存器 — 寄存器,寄存器 — 立即數(shù),寄存器 — 存儲(chǔ)器,ADD AX,BX 2 字節(jié),ADD AX,[3048H] 4 字節(jié),ADD AX,3048H 3 字節(jié),二地址,CALL,7.4,7.5 RISC 技 術(shù),一、RISC 的產(chǎn)生和發(fā)展,80 — 20 規(guī)律,典型程序中 80% 的語句僅僅使 用處理機(jī)中 20% 的指令,執(zhí)行頻度高的簡(jiǎn)單指令,因復(fù)雜指令 的存在,執(zhí)行速度無法提高,RISC(Reduced Instruction Set Computer),CISC(Complex Instruction Set Computer),—— RISC技術(shù),二、RISC 的主要特征,選用使用頻率較高的一些 簡(jiǎn)單指令 復(fù)雜指令的功能由簡(jiǎn)單指令來組合,指令 長(zhǎng)度固定,只有 LOAD / STORE 指令訪存,流水技術(shù) 一個(gè)時(shí)鐘周期 內(nèi)完成一條指令,組合邏輯 實(shí)現(xiàn)控制器,多個(gè) 通用 寄存器,采用 優(yōu)化 的 編譯 程序,7.5,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計(jì)算機(jī) 組成 原理
鏈接地址:http://m.appdesigncorp.com/p-2877567.html