計算機組成原理白中英第四章指令系統(tǒng).ppt
《計算機組成原理白中英第四章指令系統(tǒng).ppt》由會員分享,可在線閱讀,更多相關(guān)《計算機組成原理白中英第四章指令系統(tǒng).ppt(53頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第四章 指令系統(tǒng),概述 尋址方式 指令系統(tǒng),2020年8月13日12時45分,概 述,指令:是指示計算機某種操作的命令。 微指令,機器指令,宏指令 指令系統(tǒng):一臺計算機中所有機器指令的集合。 它是機器硬件設(shè)計的依據(jù),也是軟件設(shè)計的基礎(chǔ)。 它決定了一臺計算機硬件的主要性能和基本功能。是硬件和軟件間的界面。 系列計算機:有共同的指令集,相同的基本體系結(jié)構(gòu)。 CISC和RISC,2020年8月13日12時45分,一個完善的指令系統(tǒng)應(yīng)滿足: 1.完備性:指令豐富,功能齊全,使用方便。 2.有效性:程序占空間小,執(zhí)行速度快。 3.規(guī)整性:對稱性,勻齊性,指令格式和數(shù)據(jù)格式的一致性。 4.兼容性: “向上
2、兼容”-系列機中低檔機上運行的軟件可以在高檔機上運行。,2020年8月13日12時45分,計算機語言與硬件結(jié)構(gòu)的關(guān)系,高級語言的語句和用法與具體機器的指令系統(tǒng)無關(guān); 低級語言分機器語言和匯編語言,他們和具體機器的指令系統(tǒng)密切相關(guān)。 匯編語言與硬件的關(guān)系密切,編寫的程序緊湊、占內(nèi)存小、速度快,特別適合與編寫經(jīng)常與硬件打交道的系統(tǒng)軟件;而高級語言不涉及機器的硬件結(jié)構(gòu),通用性強、編寫程序容易,特別適合與編寫與硬件沒有直接關(guān)系的應(yīng)用軟件。,2020年8月13日12時45分,概 述,機器指令的要素 操作碼 源操作數(shù) 目的操作數(shù) 下一條指令的引用 指令字(簡稱指令)即表示一條指令的機器字。 指令格式則是指
3、令字用二進制代碼表示的結(jié)構(gòu)形式,由操作碼字段和地址碼字段組成。,2020年8月13日12時45分,1操作碼 設(shè)計計算機時,對指令系統(tǒng)的每一條指令都要規(guī)定一個操作碼。 指令操作碼表示該指令進行什么性質(zhì)的操作, 表征指令的操作特性與功能。 組成操作碼字段的位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模。 例如,一個指令系統(tǒng)只有8條指令,則有3位操作碼就夠;如果有32條指令,那么就需要5位操作碼。,2020年8月13日12時45分,2地址碼 地址碼字段通常指定參與操作的操作數(shù)的地址。 根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。目前,二地址指令和一地址指令用的最多。,2020年8月1
4、3日12時45分,(1)零地址指令的指令字中只有操作碼,而沒有地址碼。 (2)一地址指令常稱為單操作數(shù)指令。 OP (A) - A (AC) OP (A) - AC (3)二地址指令常稱為雙操作數(shù)指令。 (A1) OP (A2)-A1 (4)三地址指令字中有三個操作數(shù)地址。 (A1) OP (A2)-A3 OP表示操作性質(zhì);(AC)表示累加寄存器AC中的數(shù);(A)表示內(nèi)存中地址為A的存儲單元中的數(shù)或運算器中地址為A的通用寄存器中的數(shù);表示把操作(運算)結(jié)果傳送到指定的地方。,2020年8月13日12時45分,二地址指令格式中,從操作數(shù)的物理位置來說,又可歸結(jié)為三種類型。 存儲器-存儲器(SS)
5、型指令:操作時都是涉及內(nèi)存單元,參與操作的數(shù)都放在內(nèi)存里,從內(nèi)存某單元中取操作數(shù),操作結(jié)果存放至內(nèi)存另一單元中,因此機器執(zhí)行這種指令需要多次訪問內(nèi)存。 寄存器-寄存器(RR)型指令:需要多個通用寄存器或個別專用寄存器,從寄存器中取操作數(shù),把操作結(jié)果放到另一寄存器。機器執(zhí)行寄存器-寄存器型指令的速度很快,因為執(zhí)行這類指令,不需要訪問內(nèi)存。 寄存器-寄存器(RS)型指令:執(zhí)行此類指令時,既要訪問內(nèi)存單元,又要訪問寄存器。,2020年8月13日12時45分,3指令字長度 一個指令字中包含二進制代碼的位數(shù),稱為指令字長度。而機器字長是指計算機能直接處理的二進制數(shù)據(jù)的位數(shù),與主存單元的位數(shù)一致,它決定了
6、計算機的運算精度。,它們之間關(guān)系如上:其中L為指令字長度,N為機器字長度,2020年8月13日12時45分,使用多字長指令,目的在于提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題。其主要缺點是必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運算速度,又占用了更多的存儲空間。 等長指令字結(jié)構(gòu):各種指令字長度是相等的。這種指令字結(jié)構(gòu)簡單,且指令字長度是不變的。 變長指令字結(jié)構(gòu):各種指令字長度隨指令功能而異。結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復雜。,2020年8月13日12時45分,4.指令助記符 由于硬件只能識別1和0,所以采用二進制操作碼是必要的,但是書寫程序卻非常麻煩。 為了
7、便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符。 在不同的計算機中,指令助記符的規(guī)定是不一樣的。因此,指令助記符還必須轉(zhuǎn)換成與它們相對應(yīng)的二進制碼。,2020年8月13日12時45分,指令格式舉例 八位微型計算機的指令格式 8位微型機字長只有8位,指令結(jié)構(gòu)是一種可變字長形式,包含單字長、雙字長、三字長指令等多種。 內(nèi)存按字節(jié)編址,所以單字長指令每執(zhí)行一條指令后,指令地址加。雙字長指令或三字長指令每執(zhí)行一條指令時,指令地址要加2或加3,可見多字長的指令格式不利于提高機器速度。,2020年8月13日12時45分,指令和指令系統(tǒng)指令的使用,一般的操作數(shù)類型大
8、小選擇主要有:字節(jié)、半字(16位)、單字(32位)、和雙字(64位)。,2020年8月13日12時45分,例:指令格式如下所示,其中機器字長16位,OP為操作碼,試分析指令格式的特點。,解: (1)單字長二進制指令。 (2)操作碼字段OP可以指定27=128條指令。 (3)源寄存器和目標寄存器都是通用寄存器(可分別指定16個),所以是RR型指令,兩個操作數(shù)均在寄存器中。 (4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運算類指令。,2020年8月13日12時45分,例: 指令格式如下所示,OP為操作碼字段,試分析指令格式特點。,15 10 7 4 3 0,解: (1)雙字長二地址指令,用于訪問存儲器。 (2)
9、操作碼字段OP為6位,可以指定64種操作。 (3)一個操作數(shù)在源寄存器(共16個),另一個操作數(shù)在存儲器中(由變址寄存器和位移量決定)所以是RS型指令。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,指令的尋址方式 計算機中有兩種信息。即指令和數(shù)據(jù)(或稱操作數(shù)),它們都存放在存儲器相應(yīng)的地址中。運行程序時,計算機逐條執(zhí)行指令,并對數(shù)據(jù)進行處理。如何從存儲器中找到所需要的指令或數(shù)據(jù)呢?很明顯,只要找到它們在存儲器的有效地址即可。 所謂尋址方式,就是尋找指令或操作數(shù)的有效地址的方式。 順序?qū)ぶ贩绞剑喊凑罩噶钤趦?nèi)存的存放位置順序地取出指令,然后執(zhí)行的過程,為順序?qū)ぶ贩绞健?跳躍尋址方式:程
10、序轉(zhuǎn)移執(zhí)行的順序。,2020年8月13日12時45分,1.順序?qū)ぶ?為了達到順序?qū)ぶ返哪康?,CPU中必須有一個程序計數(shù)器(PC)對指令的順序號進行計數(shù)。PC中開始時存放程序的首地址,然后每執(zhí)行一條指令,PC加 1,以指出下條指令的地址,直到程序結(jié)束。,2020年8月13日12時45分,2. 跳躍尋址 當程序中出現(xiàn)分支或循環(huán)時,就會改變程序的執(zhí)行順序。此時,對指令尋址就要采取跳躍尋址方式。所謂跳躍,就是指下條指令的地址不是通過程序計數(shù)器PC加1獲得的,而是由指令本身給出。,2020年8月13日12時45分,操作數(shù)的尋址方式 隱含尋址 立即尋址 直接尋址 間接尋址 寄存器尋址方式和寄存器間接尋址方
11、式 相對尋址方式 基值尋址方式 變址尋址方式 塊尋址方式 段尋址方式,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,隱含尋址 這種類型的指令,不是明顯地給出操作數(shù)的地址,而是指令中隱含著操作數(shù)的地址。 在指令中不明顯的給出而是隱含著操作數(shù)的地址。例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對單地址指令格式來說是隱含地址。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,立即地址 指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身,這種尋址方式稱為立即尋址。立即尋址方式的特點是指令執(zhí)行時間很短,因為它不需要訪問內(nèi)存
12、取數(shù),從而節(jié)省了訪問內(nèi)存的時間。 例如:單地址的移位指令格式為,這里,D不表示地址,而是表示某寄存器中存放的操作數(shù)需要移位的次數(shù),因此D可看做移位指令的操作數(shù)。F為標志位,當F=1時,進行右移;當F=0時,進行左移。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,直接尋址 直接尋址是一種基本的尋址方法,其特點是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。由于操作數(shù)的地址直接給出而不需要經(jīng)過某種變換或運算,所以稱這種尋址方式為直接尋址方式。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,間接尋址 間接尋址是相對于直接尋址而言的,在間接尋址的情況下,指令地址字段中的形
13、式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,或者說D單元的內(nèi)容才是操作數(shù)的有效地址。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,寄存器尋址和寄存器間接尋址方式 當操作數(shù)不放在內(nèi)存中,而是放在中央處理器的通用寄存器中時,可采用寄存器尋址方式。顯然,此時指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號,而是通用寄存器的編號,操作數(shù)在CPU的內(nèi)部寄存器中。如:(AX,BX,CX,DX) 寄存器間接尋址方式與寄存器尋址方式的區(qū)別在于:指令格式中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中。,2020年8月
14、13日12時45分,指令和數(shù)據(jù)的尋址方式,相對尋址 把程序計數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成操作數(shù)有效地址。程序計數(shù)器的內(nèi)容就是當前指令的地址。 因此,所謂“相對”尋址,就是相對于當前指令地址而言。采用相對尋址方式的好處是程序員勿需用指令的絕對地址編程,因而所編程序可以放在內(nèi)存任何地方。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,假設(shè)D=1000H,PC=2000H,則有效地址=(PC)+D =2000H+1000H=3000H 操作數(shù)=(3000H)=1234H,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,變址和基值尋址方式 變址尋址方式與基值尋址方式
15、有點類似,它們都是把某個變址寄存器或基值寄存器的內(nèi)容,加上指令格式中的形式地址而形成操作數(shù)的有效地址。 但使用變址尋址方式的目的不在于擴大尋址空間,而在于實現(xiàn)程序塊的規(guī)律變化。,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,E=S=D+(A),2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,復合尋址方式 復合尋址方式是把間接尋址方式同相對尋址方式或變址相結(jié)合而形成的尋址方式。它分為先間接方式與后間接方式兩種。 (1)變址間接式 這種尋址方式是先把變址寄存器的內(nèi)容A和形式地址D相加得A+D,然后間接尋址,求得操作數(shù)的有效地址。操作數(shù)的有效地址為E=(A+D),2020年8月13
16、日12時45分,指令和數(shù)據(jù)的尋址方式,假設(shè)變址寄存器A的值為0050H,D=1000H,則有效地址=(A)+D)=(0050H+1000H)=2345H 操作數(shù)=(2000H)=2345H,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,(2)間接變址式 這種尋址方式是先將形式地址取間接變換(D)=N然后把N和變址寄存器的內(nèi)容A相加,即得操作數(shù)的有效地址。操作數(shù)的有效地址表達式為E=A+(D)=A+N,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,假設(shè)變址寄存器A的值為0050H,D=1000H, 則有效地址=A+(D) =0050H+(1000H)=0050+2000 =2
17、050H 操作數(shù)=(2050H)=3456H,2000H,3456H,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,塊尋址: 通常在指令中指出數(shù)據(jù)塊的起始地址和數(shù)據(jù)塊的長度,常用在輸入輸出指令中。 多用于I/O指令。對順序連續(xù)的成塊數(shù)據(jù)字進行尋址。 目的:壓縮程序的長度,加塊執(zhí)行速度。 用于:1)兩個部件間的數(shù)據(jù)交換; 2)程序,數(shù)據(jù)塊的浮動。 若塊的長度可變,格式如下:,2020年8月13日12時45分,指令和數(shù)據(jù)的尋址方式,段尋址 以8086的段尋址為例。這種尋址方式的實質(zhì)是基值尋址。Intel 8086/8088微機中,ALU16位運算,但其尋址范圍可到1M,即地址有20位。,
18、2020年8月13日12時45分,操作數(shù)尋址方式設(shè)計的要求,1.指令內(nèi)包含的地址盡可能短; 短地址指令占存儲空間小,且能減少存儲時間。 2.能訪問盡可能大的存儲空間; 3.地址能隱含在寄存器里; 寄存器字長與機器字長相同,一般對應(yīng)整個存儲空間。這樣在發(fā)生大跨步跳躍時,用短指令也行。 4.希望在不改變指令的情況下改變地址的實際值;能夠處理數(shù)組,表格或數(shù)據(jù)串。 5.尋址方式盡可能簡單。,2020年8月13日12時45分,例:一種二地址RS型指令的結(jié)構(gòu)如下所示:其中I為間接尋址標志位,X為尋址模式字段,D位偏移量字段。通過I,X,D的組合,可構(gòu)成下表所示的尋址方式。 請寫出六種尋址方式的名稱。,解:
19、 直接尋址 相對尋址 變址尋址 寄存器間接尋址 間接尋址基址尋址,6位 4位1位 2位16位,2020年8月13日12時45分,堆棧尋址方式,堆棧-能存取數(shù)據(jù)的暫時存儲單元. 一.串聯(lián)堆棧 一組專門的寄存器,一個R保存一個數(shù)據(jù)。 數(shù)據(jù)的傳送在棧頂和累加器之間進行。 特點:速度高,后進先出。 A B C D,缺點: 1、寄存器的數(shù)目有限的 2、堆棧讀出是破壞性的,2020年8月13日12時45分,二.存儲器堆棧 用一部分主存空間作堆棧. 優(yōu)點: 1.長度可隨意; 2.堆棧的數(shù)目可隨意指定; 3.尋址簡單-用訪內(nèi)指令. 硬件支持: SP-堆棧指示器(棧指針),CPU中一個專門寄存器。 SP的內(nèi)容是
20、棧頂?shù)膯卧刂?。改變SP的內(nèi)容即可移動棧頂?shù)奈恢谩?注意:主存中某一部分作為堆棧區(qū)后,該部分不能作其它用途。,2020年8月13日12時45分,一) 進棧-累加器中的數(shù)送堆棧保存. (AC)Msp (sp) 1 sp 97 97 AC 98 AC 98 99 99-sp 100 -sp 100 97 AC 98-sp 99 100,2020年8月13日12時45分,二)出棧-將堆棧中的數(shù)取出送累加器. (sp)+1 sp (Msp) AC 97 97 98sp 98 99 AC 99-sp 100 100 97 98 99 100,2020年8月13日12時45分,8086 堆棧指令 設(shè)sp的
21、初值 MOV sp, im 采用下推式 (PUSH DOWN) 堆棧的最大容量為sp的初值與ss間的距離。 例:PUSH AX 分兩次完成:AH sp, (sp) 1 sp AL sp, (sp) 1 sp 注意: 存儲器堆棧中,進棧時先存入數(shù)據(jù),后修改堆棧指示器;出棧時,先修改堆棧指示器,然后取出數(shù)據(jù)。,2020年8月13日12時45分,典型指令 一臺計算機最基本的、必不可少的指令是不多的,因為很多指令都可以用這些最基本的指令組合來實現(xiàn)。 既可以直接用硬件實現(xiàn),也可以用其他指令編成子程序來實現(xiàn),但兩者在執(zhí)行時間上差別很大,因此在指令系統(tǒng)中,有相當一部分指令是為了提高程序的執(zhí)行速度和便于程序員
22、編寫程序而設(shè)置的。 另外,指令系統(tǒng)的有效性還表現(xiàn)在用它所編制的程序占用的存儲器空間小。,2020年8月13日12時45分,分類(8088/8086) 1.數(shù)據(jù)傳送類 取數(shù) MOV AX,TEMP 存數(shù) MOV TEMP,AX 傳送 MOV AX,CX 2.算術(shù)運算類 定點,ADD,ADC,INC,SUB,DEC,MUL,DIV等 浮點, ,求反,求補 NEG,比較 CMP 3.邏輯運算類 NOT,AND,OR,XOR,TEST,2020年8月13日12時45分,4.程序控制類 無條件轉(zhuǎn)移 JMP 條件轉(zhuǎn)移 C,Z,S,P,O 轉(zhuǎn)子程序 JSR 子程序返回 RET 中斷返回 IRET 5.輸入/
23、輸出類 IN AX,n OUT n, AX 6.其他類 標志操作:CLC(clear carry flag) STC (set carry flag) CLI (clear interrupt elable flag) HLT,WAIT,ESC,LOCK,2020年8月13日12時45分,指令和指令系統(tǒng)指令的使用,2020年8月13日12時45分,指令和指令系統(tǒng)指令的使用,2020年8月13日12時45分,CISC和RISC,CISC:復雜指令系統(tǒng) RISC:精簡指令系統(tǒng),2020年8月13日12時45分,CISC和RISC問題的提出,CISC的問題 龐大的指令集 紛繁復雜的尋址模式 硬件實現(xiàn)
24、復雜(硬件資源的利用率低),2020年8月13日12時45分,精簡指令集結(jié)構(gòu),RISC的理由 減小代碼空間 精簡指令集結(jié)構(gòu)的特征 每周期一條指令 寄存器-寄存器操作(除Load/Store類型結(jié)構(gòu)) 簡單的尋址方式 簡單的指令格式,2020年8月13日12時45分,RISC指令系統(tǒng)的最大特點是: 選取使用頻率最高的一些簡單指令,指令條數(shù)少; 指令長度固定,指令格式種類少; 只有取數(shù)存數(shù)指令訪問存儲器,其余指令的操作都在寄存器之間進行。,2020年8月13日12時45分,例題:分析指令格式及尋址方式特點。 15 12 11 9 8 65 3 2 0 源地址 目標地址 答:指令格式及尋址方式的特點如下: 1)單字長二地址指令; 2)操作碼可指定16條指令; 3)源和目的均有8種尋址方式; 4)源地址寄存器和目的地址寄存器均有8個。,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。