組成原理15第4章指令系統(tǒng)_第1頁
組成原理15第4章指令系統(tǒng)_第2頁
組成原理15第4章指令系統(tǒng)_第3頁
組成原理15第4章指令系統(tǒng)_第4頁
組成原理15第4章指令系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第6章指令系統(tǒng)6.1指令格式

6.2尋址方式6.3指令類型

6.4指令系統(tǒng)的設(shè)計技術(shù)6.5指令系統(tǒng)舉例

6.6指令系統(tǒng)的發(fā)展

課堂練習本章小結(jié)作業(yè)26.1指令格式一、指令的基本格式二、指令格式分類三、操作數(shù)類型3一、指令的基本格式指令是由操作碼和地址碼兩部分組成的:操作碼字段(OP)地址碼字段(A)操作碼:用來指明該指令所要完成的操作,如加法、減法、傳送、移位、轉(zhuǎn)移等等。位數(shù)反映了機器的操作種類,也即機器允許的指令條數(shù),如果操作碼有n位二進制數(shù),則最多可表示2n種指令。地址碼:用來尋找運算所需要的操作數(shù)(源操作數(shù)和目的操作數(shù))。地址碼包括:源操作數(shù)地址、目的操作數(shù)地址和下一條指令的地址。地址含義:主存的地址、寄存器地址或者I/O設(shè)備地址。

4二、指令格式分類1、按照操作碼分類2、按照地址碼分類3、按照指令字長分類51、按照操作碼分類操作碼長度固定:將操作碼集中放在指令字的一個字段內(nèi)。

這種格式便于硬件設(shè)計,指令譯碼時間短,廣泛應(yīng)用于字長較長的、大中型計算機和超級小型計算機以及RISC(ReducedInstructionSetComputer)中。如IBM370和VAX-11系列機,操作碼長度均為8位。操作碼長度不固定:指令操作碼分散在指令字的不同字段中。這種格式可有效地壓縮操作碼的平均長度,在字長較短的微機中被廣泛采用。如PDP-11,Intel8086/80386等。62、按照地址碼分類(1)三地址指令:(A1)OP(A2)→A3OPA1A2A3(2)二地址指令:(A1)OP(A2)→A1A1:目的操作數(shù)A2:源操作數(shù)(3)單地址指令:(ACC)OP(A)→ACCOP(A)→A單目操作:如NEG、INC等指令OPA1A2OPA72、按照地址碼分類(4)零地址指令不涉及操作數(shù):如NOP、HLT指令操作數(shù)隱含:如PUSH、POP指令對于寄存器類型的操作數(shù),地址A指寄存器編號。OP83、按照指令字長分類按指令長度固定與否可以分為:固定指令字長的指令:所有指令的字長均相等,一般等于機器字長??勺冎噶钭珠L的指令:指令字長不固定,通常取字節(jié)的整數(shù)倍。按照指令字長與機器字長的關(guān)系分類:短格式指令:指令字長小于或等于機器字長。長格式指令:指令字長大于機器字長。一個機器的指令系統(tǒng)中,短格式指令和長格式指令可以并存,通常將最常用的指令設(shè)計成短格式指令,可以節(jié)省存儲空間、提高指令的執(zhí)行速度。9三、操作數(shù)類型按照指令處理的操作數(shù)存放位置分:存儲器類型:操作數(shù)存放在主存中,A為其地址信息寄存器類型:操作數(shù)存放在CPU的通用寄存器中,A為寄存器號立即數(shù)類型:操作數(shù)存放在指令(地址字段)中按照指令處理的操作數(shù)性質(zhì)分:地址(addresses):存儲器地址,是無符號整數(shù)。數(shù)字(numbers):整數(shù)、浮點數(shù)、十進制數(shù)。字符(characters)

邏輯數(shù)據(jù):真假兩種狀態(tài)10類型解釋⒈整數(shù)補碼表示的二進制數(shù),字節(jié)(8位)、字(16位)和雙字(32位)3種⒉序數(shù)無符號二進制數(shù),字節(jié)(8位)、字(16位)和雙字(32位)3種⒊UBCD數(shù)未拼裝(unpacked)的BCD數(shù)、數(shù)字值0到9,每個數(shù)字占一個字節(jié)⒋BCD數(shù)經(jīng)過拼裝的BCD數(shù),一個字節(jié)可表示兩位數(shù)字,從00到99⒌指針32位有效地址,指出段內(nèi)的地址偏移量⒍位字段連續(xù)的位,或稱之為位串。位串可以開始于任意字節(jié)中的任意位置。位串長度可達232-1位⒎字節(jié)串連續(xù)的字節(jié),也可以是連續(xù)的字或雙字,因為有專門的串指令能對上述3種串進行處理。串長度為0到232-1字節(jié)⒏浮點數(shù)浮點部件所支持的數(shù)據(jù)類型,見附錄表5.3

Pentium指令系統(tǒng)所支持的數(shù)據(jù)類型11Pentium浮點部件所支持的數(shù)據(jù)類型類型解釋⒈字整數(shù)補碼表示的16位帶符號數(shù)⒉短整數(shù)補碼表示的32位帶符號數(shù)⒊長整數(shù)補碼表示的64位帶符號數(shù)⒋BCD數(shù)共80位。最高位是符號位,緊接著的7位沒有使用,剩下的72位表示18個BCD數(shù)字。每個數(shù)字占4位,其值為從0到9⒌單精度浮點數(shù)共32位。最高位是符號位,緊接著的8位是移碼表示的階碼,剩下的23位用來表示尾數(shù)的小數(shù)部分,采用隱藏位⒍雙精度浮點數(shù)共64位。最高位是符號位,緊接著的11位是移碼表示的階碼,剩下的52位用來表示尾數(shù)的小數(shù)部分,采用隱藏位⒎擴展精度浮點數(shù)共80位。最高位是符號位,緊接著的15位是移碼表示的階碼,剩下的64位用來表示尾數(shù),包括整數(shù)和小數(shù)部分,無隱藏位126.2尋址方式一、指令尋址二、數(shù)據(jù)尋址13一、指令尋址1、順序?qū)ぶ贩绞娇刂破髦惺褂贸绦蛴嫈?shù)器PC來指示指令在內(nèi)存中的地址。在程序順序執(zhí)行時,指令的地址碼由PC自加1得出。指令在內(nèi)存中按順序存放,當順序執(zhí)行一段程序時,根據(jù)PC從存儲器取出當前指令,PC自動+1,然后執(zhí)行這條指令;接著又根據(jù)PC指示從存儲器取出下一條指令,PC自動+1,執(zhí)行……。2、跳躍尋址方式當程序執(zhí)行轉(zhuǎn)移指令時,程序不再順序執(zhí)行,而是跳轉(zhuǎn)到另一個地址去執(zhí)行,此時,由該條轉(zhuǎn)移指令的地址碼字段可以得到新指令地址,然后將其置入PC中。14二、數(shù)據(jù)尋址1、立即尋址(ImmediateAddressing)2、直接尋址(DirectAddressing)3、間接尋址(IndirectAddressing)4、寄存器尋址方式(RegisterAddressing)5、寄存器間接尋址方式(RegisterIndirectAddressing)6、變址尋址(IndexedAddressing)7、基址尋址(BasedAddressing)8、相對尋址(RelativeAddressing)9、堆棧尋址(StackAddressing)151、立即尋址(ImmediateAddressing)操作數(shù)在指令的地址碼字段,即:DATA=A例如:MOVAL,5MOVAX,3064HMOVAL,‘A’162.直接尋址(DirectAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器單元的地址存放在指令的地址字段A中,即:DATA=(EA)EA=A173、間接尋址(IndirectAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器單元地址也存放在存儲器中,該存儲器地址則存放在指令的地址字段中,即:DATA=(EA)EA=(A)即:A為操作數(shù)地址的地址18A指令存儲器操作數(shù)直接尋址方式:操作數(shù)間接尋址方式:A指令EAEA:194、寄存器尋址方式(RegisterAddressing)操作數(shù)位于寄存器中,操作數(shù)所在的寄存器編號存放在指令的地址字段A中,即:DATA=(Ri)MOVAX,BXMOVAL,BH205、寄存器間接尋址方式(RegisterIndirectAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器地址存放在寄存器中,而該寄存器編號存放在指令的地址字段A中,即:DATA=(EA)EA=(Ri)21寄存器號指令操作數(shù)寄存器堆寄存器尋址方式:寄存器號指令寄存器堆EA寄存器間接尋址方式:操作數(shù)存儲器226、變址尋址(IndexedAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器地址EA由變址寄存器RI和指令的地址字段A指出:DATA=(EA)EA=(RI

)+A237、基址尋址(BasedAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器地址EA由基址寄存器Rb和指令的地址字段A指出:DATA=(EA)EA=(Rb

)+A248、相對尋址(RelativeAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器地址EA由程序計數(shù)器PC和指令的地址字段A指出:DATA=(EA)EA=(PC

)+AA通常稱作相對偏移量DISP。相對尋址主要用于轉(zhuǎn)移指令,執(zhí)行之后,程序?qū)⑥D(zhuǎn)移到(PC)+偏移量為地址的指令去執(zhí)行。偏移量可正、可負,通常用補碼表示,即可相對PC值向后或向前轉(zhuǎn)移。259、堆棧尋址(StackAddressing)操作數(shù)位于存儲器中,操作數(shù)所在的存儲器地址EA由堆棧指針寄存器SP隱含指出,通常用于堆棧指令。堆棧是由若干個連續(xù)主存單元組成的先進后出(firstinlastout,即FILO)存儲區(qū),第一個放入堆棧的數(shù)據(jù)存放在棧底,最近放入的數(shù)據(jù)存放在棧頂。棧底是固定不變的,而棧頂是隨著數(shù)據(jù)的入棧和出棧在時刻變化。棧頂?shù)牡刂酚啥褩V羔楽P指明。一般計算機中,堆棧從高地址向低地址擴展,即棧底的地址總是大于或等于棧頂?shù)牡刂罚Q為上推堆棧;也有少數(shù)計算機相反,稱為下推堆棧。堆棧尋址主要用來暫存中斷和子程序調(diào)用時現(xiàn)場數(shù)據(jù)及返回地址。26存儲器堆棧段棧底SP棧頂堆棧的結(jié)構(gòu)堆棧的操作:壓入(PUSH)和彈出(POP),對應(yīng)PUSH和POP指令,假設(shè)數(shù)據(jù)字長為1B壓入指令PUSHRi:將Ri寄存器內(nèi)容壓入堆棧。其操作是:(SP)-1→SP,(Ri)→(SP)彈出指令POPRi:從堆棧中彈出1個數(shù)據(jù)送Ri寄存器,其操作是:((SP))→Ri,(SP)+1→SP其中(SP)表示堆棧指針SP的內(nèi)容;((SP))表示SP所指的棧頂?shù)膬?nèi)容。276.3指令類型1.數(shù)據(jù)傳送指令包括寄存器與寄存器、寄存器與存儲單元、存儲單元與存儲單元之間的傳送。2.算術(shù)邏輯運算指令實現(xiàn)算術(shù)運算(加、減、乘、除等)和邏輯運算(與、或、非、異或)。有些計算機還設(shè)置有位操作指令,如位測試(測試指定位的值)、位清零、位求反指令等。3.移位操作指令可分為算術(shù)移位、邏輯移位和循環(huán)移位。286.3指令類型1.數(shù)據(jù)傳送指令包括寄存器與寄存器、寄存器與存儲單元、存儲單元與存儲單元之間的傳送。2.算術(shù)邏輯運算指令實現(xiàn)算術(shù)運算(加、減、乘、除等)和邏輯運算(與、或、非、異或)。有些計算機還設(shè)置有位操作指令,如位測試(測試指定位的值)、位清零、位求反指令等。3.移位操作指令可分為算術(shù)移位、邏輯移位和循環(huán)移位。29邏輯左移、算術(shù)左移

CF0循環(huán)左移CF

CF帶進位循環(huán)左移CF算術(shù)右移

0CF邏輯右移CF循環(huán)右移CF帶進位循環(huán)右移306.3指令類型4.轉(zhuǎn)移指令無條件轉(zhuǎn)移指令:無條件轉(zhuǎn)至目的地址處執(zhí)行。條件轉(zhuǎn)移指令:條件滿足轉(zhuǎn)至目的地址處執(zhí)行,否則順序執(zhí)行調(diào)用與返回指令:調(diào)用指令CALL用于從當前的程序位置轉(zhuǎn)至子程序的入口;返回指令RETURN用于子程序執(zhí)行完后重新返回到原程序的斷點。5.堆棧操作指令6.輸入輸出指令:它完成從外設(shè)端口讀入一個數(shù)據(jù)到CPU的寄存器內(nèi),或?qū)?shù)據(jù)從CPU的寄存器輸出到某外設(shè)的端口中。

7.其他指令:包括等待指令、停機指令、空操作指令、開中斷指令等316.4指令系統(tǒng)的設(shè)計技術(shù)一、指令系統(tǒng)的要求

1、完備性:指指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。2、有效性:是指利用該指令系統(tǒng)所編寫的程序能夠高效地運行。程序占據(jù)存儲空間小、執(zhí)行速度快。3、規(guī)整性:對稱性:所有的指令都可使用各種尋址方式;勻齊性:指令可以支持各種數(shù)據(jù)類型;指令格式和數(shù)據(jù)格式的一致性:指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。4、兼容性:“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。

32二、操作碼擴展技術(shù)固定操作碼長度的格式和可變操作碼長度格式在設(shè)計操作碼不固定的指令系統(tǒng)時,應(yīng)安排指令使用頻度高的指令占用短的操作碼,對使用頻度低的指令可占用較長的操作碼,這樣可以縮短經(jīng)常使用的指令的譯碼時間。采用擴展操作碼技術(shù),使操作碼的長度隨地址數(shù)的減少而增加,即不同地址數(shù)的指令可以具有不同長度的操作碼,從而可以有效地縮短指令字長。指令操作碼擴展技術(shù)是一種重要的指令優(yōu)化技術(shù),它可以縮短指令的平均長度,增加指令字所能表示的操作信息。但指令操作碼擴展技術(shù)需要更多的硬件支持,它的指令譯碼更加復(fù)雜,使控制器設(shè)計難度增大。33舉例OPA1A2A300000001:1110A1A1:A1A2A2:A2A3A3:A34位操作碼,15條三地址指令11111111:111100000001:1110A2A2:A2A3A3:A38位操作碼,15條二地址指令11111111:111111111111:111100000001:1110A3A3:A312位操作碼,15條一地址指令11111111:111111111111:111111111111:111100000001:111116位操作碼34課堂練習設(shè)某8位計算機指令格式如下:其中,SR為源寄存器號,DR為目的寄存器號,指令第二字為地址、數(shù)據(jù)或偏移量。注意:除了HALT指令為單字指令外,其他指令均為雙字指令;OP(4位)SR(2位)DR(2位)ADDR/DATA/DISP35下面是該模型機的指令系統(tǒng)的一部分:指令助記符功能OPMOV1 DR,DATADATA→DR0000MOV2 [ADDR],SRSR→ADDR0001ADD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論