指令系統(tǒng)2012(V1.2).ppt
《指令系統(tǒng)2012(V1.2).ppt》由會員分享,可在線閱讀,更多相關(guān)《指令系統(tǒng)2012(V1.2).ppt(88頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第七章指令系統(tǒng),計算機(jī)組成原理,2012年3月26日,7.1指令概述,?用計算機(jī)解題時,一般都要編制程序,程序既可用高級語言編寫,亦可用機(jī)器語言編寫;?但計算機(jī)只能夠識別和執(zhí)行用機(jī)器語言編寫的程序;?各種高級語言編寫的應(yīng)用程序,最終都要翻譯成機(jī)器語言來執(zhí)行。?機(jī)器語言是由一系列的指令(語句)組成的;?指令的格式就是機(jī)器語言的語法;?每條指令規(guī)定機(jī)器完成一定的功能。?一臺計算機(jī)的所有的指令集合稱為該機(jī)的指令系統(tǒng)或指令集。它是程序工作者編制程序的基本依據(jù),也是進(jìn)行計算機(jī)邏輯設(shè)計的基本依據(jù)。,,,,,,指令系統(tǒng)基本概念,機(jī)器指令(指令)計算機(jī)能直接識別、執(zhí)行的某種操作命令。指令系統(tǒng)(指令集)一臺計算機(jī)中所有機(jī)器指令的集合。機(jī)器硬件設(shè)計的依據(jù),也是軟件設(shè)計的基礎(chǔ)。硬件和軟件間的界面,直接影響計算機(jī)系統(tǒng)性能,7.2指令系統(tǒng)的發(fā)展與性能要求7.2.1指令系統(tǒng)的發(fā)展計算機(jī)的程序是由一系列機(jī)器指令組成的。從計算機(jī)組成的層次結(jié)構(gòu)來說,計算機(jī)的指令有微指令、機(jī)器指令和宏指令之分:微指令--微程序級的命令,解釋執(zhí)行機(jī)器指令。屬于硬件宏指令--由若干條機(jī)器指令組成的軟件指令,完成某一特定功能。屬于軟件機(jī)器指令--介于微指令與宏指令之間,通常簡稱為指令,完成某一特定操作。本章所討論的指令,是機(jī)器指令。1.指令系統(tǒng)指令系統(tǒng)是表征一臺計算機(jī)性能的重要因素,它的格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍。,,,2.指令系統(tǒng)的發(fā)展(1)系列計算機(jī)系列計算機(jī)是指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一個系列的各種型號的計算機(jī)。其必要條件是同一系列的各機(jī)種有共同的指令集.而且新推出機(jī)種的指令系統(tǒng)一定應(yīng)包含所有舊機(jī)種的全部指令,即實(shí)現(xiàn)"向上兼容"。這樣,舊機(jī)種上運(yùn)行的各種軟件可以不加任何修改便可在新機(jī)種上運(yùn)行,大大減少了軟件開發(fā)費(fèi)用。系列機(jī)解決了各機(jī)種的軟件兼容問題。(2)指令系統(tǒng)結(jié)構(gòu)從計算機(jī)指令系統(tǒng)的角度看當(dāng)前的計算機(jī)指令系統(tǒng)結(jié)構(gòu)分為兩大類:復(fù)雜指令集計算機(jī)(CISC)精簡指令集計算機(jī)(RISC),,,,,70年代末期:大多數(shù)計算機(jī)的指令系統(tǒng)多達(dá)幾百條。我們稱這些計算機(jī)為復(fù)雜指令系統(tǒng)計算機(jī)(CISC)。但是如此龐大的指令系統(tǒng)難以保證正確性,不易調(diào)試維護(hù),造成硬件資源浪費(fèi)。為此人們又提出了易于采用VLSI技術(shù)實(shí)現(xiàn)的精簡指令系統(tǒng)計算機(jī)(RISC)。,,,3.指令系統(tǒng)的性能要求一個完善的指令系統(tǒng)應(yīng)滿足如下四方面的要求:(1)完備性。完備性是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。(2)有效性。有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運(yùn)行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。(3)規(guī)整性。規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。對稱性:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型;格式一致性:指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。(4)兼容性:至少要能做到"向上兼容",即低檔機(jī)上運(yùn)行的軟件可以在高檔機(jī)上運(yùn)行。,,,指令系統(tǒng)的性能,完善的指令系統(tǒng),完備性,高效性,規(guī)整性,兼容性,,,,,,,,,4.低級語言與硬件結(jié)構(gòu)的關(guān)系計算機(jī)的程序是計算機(jī)能夠識別的一串指令或語句。編寫程序的過程,稱為程序設(shè)計,而程序設(shè)計所使用的工具則是計算機(jī)語言.計算機(jī)語言有高級語言和低級語言之分。高級語言語句和用法與具體機(jī)器的指令系統(tǒng)無關(guān)。低級語言分機(jī)器語言(二進(jìn)制語言)和匯編語言(符號語言),這兩種語言都是面向機(jī)器的語言,它們和具體機(jī)器的指令系統(tǒng)密切相關(guān)。,,,,,,,,,,傳統(tǒng)機(jī)器級,計算機(jī)系統(tǒng)的層次結(jié)構(gòu),,5.高級語言級,,4.匯編語言級,,3.操作系統(tǒng)級,,2.一般機(jī)器級,,1.微程序設(shè)計級,,,,,,綜上所述,匯編語言與硬件的關(guān)系密切,編寫的程序緊湊、占內(nèi)存小、速度快,特別適合于編寫經(jīng)常與硬件打交道的系統(tǒng)軟件;而高級語言不涉及機(jī)器的硬件結(jié)構(gòu),通用性強(qiáng)、編寫程序容易,特別適合于編寫與硬件沒有直接關(guān)系的應(yīng)用軟件。,,,7.3指令格式,指令由操作碼和地址碼兩部分組成,它的基本格式如下:,?操作碼是說明指令操作性質(zhì)的二進(jìn)制數(shù)代碼。?操作碼所占的二進(jìn)制位數(shù)決定了一臺計算機(jī)所能允許的指令條數(shù)。例如,操作碼占用六位二進(jìn)制碼時,這臺計算機(jī)最多允許有:26=64條指令,1.操作碼,,,2.地址碼,根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。一般的操作數(shù)有被操作數(shù)、操作數(shù)及操作結(jié)果這三種數(shù),因而就形成了三地址指令格式。在此基礎(chǔ)上,后來又發(fā)展成二地址格式、一地址格式和零地址格式,如下圖所示:,三地址指令,二地址指令,單地址指令,零地址指令,三地址指令字中有三個操作數(shù)地址。(A1)OP(A2)→A3A1為被操作數(shù)地址,也稱源操作數(shù)地址;A2為操作數(shù)地址,也稱終點(diǎn)(目的)操作數(shù)地址;A3為存放結(jié)果的地址。同樣,A1,A2,A3既可以是內(nèi)存中的單元地址,也可以是運(yùn)算器中通用寄存器的地址。,單地址指令又稱為單操作數(shù)指令。通常這種指令通常以運(yùn)算器中累加寄存器AC中的數(shù)據(jù)為被操作數(shù),指令字的地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄存器AC中。(AC)OP(A)→ACOP表示操作性質(zhì);(AC)表示累加寄存器AC中的數(shù);(A)表示內(nèi)存中地址為A的存儲單元中的數(shù)或運(yùn)算器中地址為A的通用寄存器中的數(shù);→表示把操作(運(yùn)算)結(jié)果傳送到指定的地方。,二地址指令常稱為雙操作數(shù)指令,它的兩個地址碼字段分別指明參與操作的兩個數(shù)在內(nèi)存中或運(yùn)算器中通用寄存器的地址,A1作存放操作結(jié)果的地址。(A1)OP(A2)→A1,零地址指令的指令字中只有操作碼,而沒有地址碼。,,,7.3.1操作碼(OP)與地址碼(AC),指令系統(tǒng)中每一條指令對應(yīng)一個操作碼操作碼的長度取決于指令系統(tǒng)的規(guī)模LOP=〔log2n〕定長指令、變長指令地址碼包括被操作數(shù),操作數(shù),操作結(jié)果,,,1、指令分類方法,按計算機(jī)系統(tǒng)的層次結(jié)構(gòu)分類按操作數(shù)個數(shù)分類按操作數(shù)物理位置分類,,,2、計算機(jī)系統(tǒng)層次結(jié)構(gòu)對指令分類,微指令:微程序級的指令,屬于硬件層面機(jī)器指令:每一條機(jī)器指令可以完成一個獨(dú)立的運(yùn)算。宏指令:若干機(jī)器指令組成的軟件指令,屬于軟件,,,3、按操作數(shù)個數(shù)分類,三地址指令,二地址指令,一地址指令,OP,零地址指令,(A1)OP(A2)→(A3),(A1)OP(A2)→(A1),(AC)OP(A)→AC,如停機(jī),空操作,堆棧指令,,,4、按操作數(shù)的物理位置分類,訪問內(nèi)存存儲器-存儲器(SS)型訪問寄存器寄存器-寄存器(RR)型訪問內(nèi)存和寄存器型寄存器-存儲器(RS)型,,,5、指令字長度,指令中包含二進(jìn)制代碼的位數(shù)與機(jī)器字的長度有關(guān):單字長,雙字長,半字長。采用多字長指令的目的解決尋址較大存儲空間的問題取指令要多次訪內(nèi),影響速度,占用存儲空間較大。等長指令:結(jié)構(gòu)簡單,控制線路簡單。變長指令:結(jié)構(gòu)靈活,充分利用指令長度,控制復(fù)雜,,,6、指令字助記符,ADDSUBMOVJMPSTRLDA,7、指令操作碼的擴(kuò)展技術(shù),(1)操作碼定長,m?2n,一般在指令字的最高位分配若干個固定位表示操作碼。,若操作碼占用n位,則可以表示多少條不同的指令?,操作碼定長編碼法的特點(diǎn)是什么?,(2)操作碼長度可變,這種格式對于簡化硬件設(shè)計,減少指令譯碼時間非常有利,在字長較長的大、中型機(jī)和超級小型機(jī)以及RISC上廣泛采用。,各指令操作碼的位置、位數(shù)不固定,根據(jù)需要變化。,這種格式能夠有效地壓縮程序中操作碼的平均長度,在字長較短的微型機(jī)上廣泛采用。如Z80、Intel8086/Pentium等。,①含義?,②優(yōu)點(diǎn)?,③缺點(diǎn)?,增加指令譯碼和分析的難度,使控制器的設(shè)計復(fù)雜化。,,,例.指令字長16位,可含有3、2、1或0個地址,每個地址占4位,可表示多少條指令?,操作碼地址碼,,,15~1211~87~43~0,,0000XYZ1110XYZ,,,11110000YZ11111110YZ,三地址指令15條,二地址指令15條,,111111110000Z111111111110Z,一地址指令15條,11111111111100001111111111111111,零地址指令16條,,可表示61條指令,例:若指令字長是16位,若零地址指令有15條、一地址指令31條、二地址指令14條、三地址指令15條。假設(shè)每個地址碼需要用4位的二進(jìn)制表示,該指令系統(tǒng)應(yīng)如何編碼?,可變長度的指令系統(tǒng)的設(shè)計,到底使用何種擴(kuò)展方法有一個重要的原則:,就是使用頻度(即指令在程序中的出現(xiàn)概率)高的指令應(yīng)分配短的操作碼;使用頻度低的指令相應(yīng)地分配較長的操作碼。(霍夫曼編碼法),作用:有效地縮短操作碼在程序中的平均長度,節(jié)省存儲器空間,縮短了經(jīng)常使用的指令的譯碼時間,因而可以提高程序的運(yùn)行速度。,,,例題:假如某計算機(jī)模型:7條指令(I1~I(xiàn)7),程序中出現(xiàn)的概率用Pi表示,則可考慮表5.1所示的方案,這就是擴(kuò)展操作碼,使用頻率高的指令的操作碼為2位,低的用4位。這不是壓縮到最小代碼的方案,因?yàn)樵谟嬎銠C(jī)中的操作碼還是希望有一定的規(guī)整性,否則會引起硬件實(shí)現(xiàn)的復(fù)雜化。,,由此可見,操作碼擴(kuò)展技術(shù)是一種重要的指令優(yōu)化技術(shù),它可以縮短指令的平均長度,減少程序的總位數(shù)以及增加指令字所能表示的操作信息。當(dāng)然,擴(kuò)展操作碼比固定操作碼譯碼復(fù)雜,使控制器的設(shè)計難度增大,且需更多的硬件來支持。,8、指令長度與字長的關(guān)系,字長:指計算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它是計算機(jī)的一個重要技術(shù)指標(biāo)。作用:字長決定了計算機(jī)的運(yùn)算精度,字長越長,計算機(jī)的運(yùn)算精度越高。,一般機(jī)器的字長都是字節(jié)長度(即8位)的l,2,4或8倍數(shù)。,指令的長度:主要取決于操作碼的長度、操作數(shù)地址的長度和操作數(shù)地址的個數(shù)。各指令的長度不是固定的,但也不是任意的。指令的長度通常為字節(jié)的整數(shù)倍。,,,指令的長度與機(jī)器的字長沒有固定的關(guān)系,它既可以小于或等于機(jī)器的字長,也可以大于機(jī)器的字長。前者稱為短格式指令,后者稱為長格式指令,一條指令存放在地址連續(xù)的存儲單元中。,在同一臺計算機(jī)中可能既有短格式指令又有長格式指令,但通常是把最常用的指令(如算術(shù)邏輯運(yùn)算指令、數(shù)據(jù)傳送指令)設(shè)計成短格式指令,以便節(jié)省存儲空間和提高指令的執(zhí)行速度。,例:outport,AL-----長格式outDX,AL-----短格式,,,,,7、PDP-11指令格式舉例,OP(10bit),MODE(3),Rn(3),OP(10bit),MODE(3),Rn(3),MODE(3),Rn(3),,,源操作數(shù),被操作數(shù),尋址模式,操作數(shù)地址,,,,,單字長指令,雙字長指令,IBM370系列機(jī)的指令格式(1),RR型指令與RRE型指令是寄存器-寄存器型指令,參加運(yùn)算的操作數(shù)都在通用寄存器中。,,,IBM370系列機(jī)的指令格式(2),RX型指令和RS型指令是寄存器-存儲器型指令。其中,RX是二地址指令:第一個源操作數(shù)與結(jié)果放在同一寄存器R1中;第二個源操作數(shù)在存儲器中,其地址=(X2)+(B2)+D2;RS是三地址指令:R1存放結(jié)果;R2存放源操作數(shù);另一個源操作數(shù)在主存中,其地址=(B2)+D2.,,,SI型指令是存儲器-立即數(shù)型指令,該指令將立即數(shù)imm(立即數(shù))送到地址=(B1)+D1的存儲器中。S型指令是單地址存儲器指令。,IBM370系列機(jī)的指令格式(3),,,IBM370系列機(jī)的指令格式(4),SS和SSE型指令是存儲器-存儲器指令,兩個操作數(shù)都在存儲器中,其地址分別為(B1)+D1和(B2)+D2,同時(B1)+D1也是目的地址。SS和SSE型指令是可變字長的指令,用于十進(jìn)制運(yùn)算及字符串的運(yùn)算和處理。,,,課堂練習(xí)與思考:,1.指令格式中,地址碼字段是通過來體現(xiàn)的,因?yàn)橥ㄟ^某種方式的變換,可以給出地址。常用的指令格式有零地址指令、單地址指令、三種.,尋址方式,操作數(shù)有效,二地址指令,2、二地址指令中,操作數(shù)的物理位置可安排在____。A、棧頂和次棧頂B、兩個主存單元C、一個主存單元和一個寄存器D、兩個寄存器,C,3、指令格式是指令用表示的結(jié)構(gòu)形式,通常格式中由操作碼字段和字段組成。,二進(jìn)制代碼,地址碼,4、指令字長為16位,每個地址碼為6位,采用擴(kuò)展操作碼的方式,設(shè)計14條二地址指令,100條一地址指令,100條零地址指令。①畫出擴(kuò)展圖。②計算操作碼平均長度。,【解】①操作碼的擴(kuò)展如下:0000ΜΜΜ14條二地址指令11011110000000ΜΜΜ100條一地址指令11111000111111100100000000ΜΜΜ100條零地址指令1111100101100011②操作碼平均長度=(414+10100+16100)/214≈12.4,,,7.3.2指令尋址方式,尋找指令或操作數(shù)有效地址的方式指令尋址順序?qū)ぶ诽S尋址操作數(shù)尋址,,,,1、順序?qū)ぶ?程序的指令序列在主存順序存放。程序執(zhí)行時從第一條指令開始,逐條取出并逐條執(zhí)行,這種程序的順序執(zhí)行過程,稱為順序?qū)ぶ贩绞健榱诉_(dá)到順序?qū)ぶ返哪康?,CPU中必須有一個程序計數(shù)器(PC)對指令的順序號進(jìn)行計數(shù)。PC中開始時存放程序的首地址,每執(zhí)行一條指令,PC加1,以指出下條指令的地址,直到程序結(jié)束。PC存放下一條指令的地址,,,順序?qū)ぶ愤^程,100,,,IncAX,addax,bx,,,,PC,+1,100,101,內(nèi)存,,,101,,,2、跳躍尋址,當(dāng)程序中出現(xiàn)分支或循環(huán)時,就會改變程序的執(zhí)行順序。此時對指令尋址就要采取跳躍尋址方式。所謂跳躍,就是指下條指令的地址不是通過程序計數(shù)器PC當(dāng)前值獲得的,而是由指令本身給出。跳躍的處理方式是重新修改PC的內(nèi)容。然后進(jìn)入取指令階段。,,,跳躍尋址過程,IR,100,JMP103,,,MOVAX,BX,,,,,,PC,內(nèi)存,100,101,102,103,+1,JMP103,指令寄存器IR,MOVAX,BX,,103,,,7.3.3操作數(shù)的尋址方式,形成操作數(shù)有效地址的方法。單地址指令地址碼的構(gòu)成:X,I,D實(shí)際有效地址為E,實(shí)際操作數(shù)SS=(E),,,尋址方式分類,立即尋址直接尋址間接尋址寄存器尋址、,寄存器間接尋址相對尋址變址尋址復(fù)合尋址,,,,,,,1、立即尋址,地址碼字段是操作數(shù)本身S=D例:MOVAX,2038H(2038H→AX)Little-Endian,,MOV,38,,,,,20,20,38,,,,,內(nèi)存,AX,,,2、寄存器尋址(RegisterAddressing),操作數(shù)在CPU的內(nèi)部寄存器中.AX,BX,CX,DXMOVAX,BXE=R,0 x2000,0 x4FFF,,BX,AX,0 x2000,,,3、直接尋址(DirectAddressing),地址碼字段直接給出操作數(shù)在內(nèi)存的地址.E=DMOVAX,[200],,77,,,,200,200,內(nèi)存,,,4、間接尋址(IndirectAddressing),D單元的內(nèi)容是操作數(shù)地址,D是操作數(shù)地址的地址E=(D),,400,,788,,,,,300,300,400,需要訪問兩次內(nèi)存,速度慢已被淘汰,內(nèi)存,,,5、寄存器間接尋址,D單元的內(nèi)容是操作數(shù)的地址,D是操作數(shù)地址的地址E=(R)MOVAX,[BX],,300,,R,,,6、相對尋址(RelativeAddressing),指令中的D加上PC的內(nèi)容作為操作數(shù)的地址.E=D+(PC),2000,,,,,PC,2100,程序指令計數(shù)器,,,7、變址尋址(IndexAddressing),指定一個寄存器R,其存放基址,R被稱為變址寄存器。它與本指令的地址無關(guān),R的內(nèi)容可以隨要求填入。E=D+(R)MOVAX,200[SI]SI,DI都稱為變址寄存器,3000,,操作數(shù),,,,,,R,3200,內(nèi)存,,,,,,,8、復(fù)合尋址(CompositeAddressing),將間址,相對,變址,基值等尋址方式組合.變址間址先變址,后間址.E=((R)+D),3000,,5000,,,,,,操作數(shù),,,3100,,,9、塊尋址,用于I/O指令。對順序連續(xù)的成塊數(shù)據(jù)字進(jìn)行尋址目的:壓縮程序的長度,加快執(zhí)行速度。用于:兩個部件間的數(shù)據(jù)交換;程序,數(shù)據(jù)塊的浮動。數(shù)據(jù)搬移子程序若塊的長度可變,格式如下:,數(shù)據(jù)塊定長時:,,,,,,,10、段尋址,Intel8086/8088微機(jī)中,ALU16位運(yùn)算,但其尋址范圍可到1M,即地址有20位。實(shí)質(zhì)是基值尋址。,4位,16位邏輯地址,20位物理地址,16位段寄存器,,ALU,,,,,11、堆棧尋址方式,堆棧------一組能存取數(shù)據(jù)的暫時存儲單元。串聯(lián)堆棧一組專門的寄存器,一個R保存一個數(shù)據(jù)。數(shù)據(jù)的傳送在棧頂和通用寄存器之間進(jìn)行。快速:在CPU內(nèi)部實(shí)現(xiàn)串行:進(jìn)棧和出棧涉及到棧內(nèi)所有其它數(shù)據(jù)的移動;破壞性讀出:讀數(shù)據(jù)的同時也離開了堆棧;棧容量有限:取決于CPU內(nèi)堆棧專用寄存器的數(shù)量;棧頂不動,數(shù)據(jù)移動。,,,堆棧尋址方式,AX,AX,,,,,BX,BX,AX,,,,CX,CX,BX,AX,,,PUSHAX,PUSHBX,PUSHCX,CX,BX,AX,,,,POPCX,堆棧頂,,,存儲器堆棧,用一部分主存空間作堆棧稱為存儲器堆棧。堆棧的數(shù)目、長度可隨意指定SP---堆棧指示器(棧指針),CPU中一個專門寄存器,SP內(nèi)容是棧頂單元地址。改變SP內(nèi)容即可移動棧頂?shù)奈恢谩6褩2僮髌陂g,堆棧中數(shù)據(jù)不動,棧頂移動非破壞性讀出,,,進(jìn)棧,進(jìn)棧--------累加器中的數(shù)送堆棧保存.(AC)→堆棧MSP堆棧指針(sp)-1→sp,a,,,PUSHa,PUSHb,PUSHc,100,99,98,97,,,,,,,,a,b,b,AC,,,,,,,出棧,出棧--------將堆棧中的數(shù)取出送累加器堆棧指針(sp)+1→sp(堆棧MSP)→AC,,,100,99,98,97,,,,a,b,b,AC,,a,,,,,,,例1.字長16位,主存64K,指令單字長單地址,80條指令。尋址方式有直接、間接、相對、變址。請設(shè)計指令格式。解:80條log[80]=7采用7位操作碼尋址方式4種采用2位PC為16位(訪存空間決定)變址寄存器16位相對尋址E=(PC)+D變址尋址E=(R)+D,,,,,,答:指令格式及尋址方式的特點(diǎn)如下:1)單字長二地址指令;2)操作碼可指定16條指令;3)源和目的均有8種尋址方式;4)源地址寄存器和目的地址寄存器均有8個;5)可尋址范圍為1~64K,例2.分析以下指令格式及尋址方式特點(diǎn)?,,,,,,200,500,1100,200,100,,500,,800,,100,,200,,2100,PC=1000,R基=2000,尋址方式,X,操作數(shù),立即,0,100,直接,1,200,間接,2,500,相對,3,100,變址,4,200,變址間址,5,500,有效地址E,S=D,E=D=100,E=(D)=200,E=PC+D=1100,E=(R)+D=2100,E=((R)+D)=200,例3.設(shè)某機(jī)的指令格式、有關(guān)寄存器和主存內(nèi)容如下,X為尋址方式,D為形式地址,請在下表中填入有效地址E及操作數(shù)的值。?,,,解答:,,例題4.某機(jī)指令格式如下:,其中X為尋址特征位,且X=00時不變址;X=01時用變址寄存器X1進(jìn)行變址;X=10時用變址寄存器X2進(jìn)行變址;X=11時相對尋址。設(shè)(PC)=1234H,(X1)=(X2)=1122H,請確定下列指令的有效地址(均用十六進(jìn)制表示,H表示十六進(jìn)制);(1)4420H(2)2244H(3)1322H(4)3521H(5)6723H解:(1)指令4420H展開為:0100010000100000BX=00不變址,有效地址=D=0020H,,,,,,,(2)指令2244H展開為:0010001001000100BX=10用變址寄存器X2進(jìn)行變址,有效地址=(X2)+D=1122H+44H=1166H(3)指令1322H展開為:0001001100100010BX=11為相對尋址,有效地址=(PC)+D=1234H+22H=1256H(4)指令3521H展開為:0011010100100001BX=01用變址寄存器X1進(jìn)行變址,有效地址=(X1)+D=0037H+21H=0058H(5)指令6723H展開為:0110011100100011BX=11為相對尋址,有效地址=(PC)+D=1234H+23H=1257H,,,,,,,,,,,,,,,,,例題6:假設(shè)機(jī)器字長16位,主存容量為128K字節(jié),指令字長度為16位或32位,共有128條指令,設(shè)計計算機(jī)指令格式,要求有直接、立即數(shù)、相對、基值、間接、變址六種尋址方式。解:由已知條件,機(jī)器字長16位,主存容量128KB/16=64K字,因此MAR=16位,共128條指令,故OP字段占7位。采用單字長和雙字長兩種指令格式,其中單字長指令用于算術(shù)邏輯和I/O類指令,雙字長用于訪問主存的指令。,,,尋址方式由尋址模式X定義如下:X=000直接尋址E=D(64K)X=001立即數(shù)D=操作數(shù)X=010相對尋址E=PC+D,PC=16位X=011基值尋址E=Rb+D,Rb=16位X=100間接尋址E=(D)X=101變址尋址E=RX+D,RX=16位,,,課堂練習(xí)與思考:,1、若存儲器中的內(nèi)容是操作數(shù)的地址,則使用的尋址方式是。,2、單地址指令中為了實(shí)現(xiàn)兩個數(shù)的算術(shù)運(yùn)算,除地址碼指明的一個操作數(shù)外,另一個常采用尋址方式。,存儲器間接尋址,隱含,3、變址尋址方式中,操作數(shù)的有效地址等于。A、基值寄存器內(nèi)容加上形式地址(位移量)B、堆棧指示器內(nèi)容加上形式地址(位移量)C、變址寄存器內(nèi)容加上形式地址(位移量)D、程序記數(shù)器內(nèi)容加上形式地址(位移量),C,,,課堂練習(xí)與思考:,4、用某個寄存器中操作數(shù)的尋址方式稱為___尋址。A直接B間接C寄存器直接D寄存器間接,C,5.寄存器間接尋址方式中,操作數(shù)處在______。A.通用寄存器B.主存單元C.程序計數(shù)器D.堆棧,B,6、指令系統(tǒng)采用不同尋址方式的目的是______。A實(shí)現(xiàn)存貯程序和程序控制;B縮短指令長度,擴(kuò)大尋址空間,提高編程靈活性;C可直接訪問外存;D提供擴(kuò)展操作碼的可能并降低指令譯碼的難度;,B,,,課堂練習(xí)與思考:,7.指令格式如下所示,OP為操作碼字段,試分析指令格式及尋址方式特點(diǎn)。1510987430,解:⑴雙字長二地址指令,用于訪問存儲器,操作碼字段可指定64種操作;⑵RS型指令,一個操作數(shù)在通用寄存器中(共16個通用寄存器),另一個操作數(shù)在內(nèi)存中⑶有效地址可通過基址尋址求得,即有效地址等于基址寄存器(共16個)內(nèi)容加上位移量。,,,課堂練習(xí)與思考:,8.某機(jī)主存容量為4M16位,且存儲字長等于指令字長,若該機(jī)的指令系統(tǒng)具備120種操作。操作碼位數(shù)固定,且具有直接、間接、立即、相對四種尋址方式。(1)畫出一地址指令格式并指出各字段的作用;(2)該指令直接尋址的最大范圍;(3)一次間址的尋址范圍;(4)相對尋址的尋址范圍。,,,1.數(shù)據(jù)傳送類指令這類指令的功能是實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲單元以及存儲單元與存儲單元之間的數(shù)據(jù)傳送。數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作指令等等。,2.算術(shù)運(yùn)算指令這類指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。這類指令主要用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算。大型機(jī)(如IBM370機(jī)、國產(chǎn)銀河機(jī)、CRAY-1機(jī)、CDC的STAR-100機(jī)等)中還設(shè)置有向量運(yùn)算指令,可直接對整個向量或矩陣進(jìn)行求和、求積運(yùn)算。,7.4.1指令的分類,,,3.邏輯運(yùn)算指令這類指令包括邏輯加、邏輯乘、邏輯比較、測等指令、按位加、邏輯移位等指令,主要用于無符號數(shù)的位操作、代碼的轉(zhuǎn)換、判斷及運(yùn)算。移位指令用來對寄存器的內(nèi)容實(shí)現(xiàn)左移、右移或循環(huán)移位。,4.程序控制指令程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時,有時機(jī)器執(zhí)行到某條指令時,出現(xiàn)了幾種不同結(jié)果,這時機(jī)器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。還有無條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。轉(zhuǎn)子指令是轉(zhuǎn)向本指令操作地址所指出的子程序入口,并將原程序中下一條指令地址存入內(nèi)存某單元中,以便為返回主程序時提供返回地址。,,,5.輸入輸出指令輸入輸出指令主要用來啟動外圍設(shè)備,檢查測試外圍設(shè)備的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。6.字符串處理指令字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串)、字符串替換(把某一字符串用另一字符串替換)等。這類指令在文字編輯中對大量字符串進(jìn)行處理。,,,7.特權(quán)指令特權(quán)指令是指具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。在多用戶、多任務(wù)的計算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系統(tǒng)資源的分配和管理。8.其他指令除以上各類指令外,還有狀態(tài)寄存器置位、復(fù)位指令、測試指令、暫停指令,空操作指令,以及其他一些系統(tǒng)控制用的特殊指令。,,,,,7.4.28086/8088典型指令,數(shù)據(jù)傳送類取數(shù)MOVAX,TEMP存數(shù)MOVTEMP,AX傳送MOVAX,CX算術(shù)運(yùn)算類定點(diǎn)+,-,,ADD,ADC,INC,SUB,DECMUL,DIV等浮點(diǎn)+,-,,,求反,求補(bǔ)NEG,比較邏輯運(yùn)算類NOT,AND,OR,XOR,TEST,,,8086/8088典型指令,程序控制類無條件轉(zhuǎn)移JMP條件轉(zhuǎn)移C,Z,N,P,V轉(zhuǎn)子程序JSR子程序返回RET中斷返回IRET輸入/輸出類INAX,nOUTn,AX字符串處理字符串傳送、轉(zhuǎn)換、比較、查找特權(quán)指令:系統(tǒng)資源的分配和管理其他類標(biāo)志操作:CLC(clearcarryflag)CLI(clearinterruptelableflag)HLT,WAIT,ESC,LOCK,,,7.5.3指令系統(tǒng)發(fā)展方向,CISC---復(fù)雜指令系統(tǒng)計算機(jī)ComplexInstructionSystemComputer指令數(shù)量多,指令功能,復(fù)雜的計算機(jī)。RISC---精簡指令系統(tǒng)計算機(jī)ReducedInstructionSystemComputer指令數(shù)量少,指令功能單一的計算機(jī)。,1.什么是復(fù)雜指令系統(tǒng)計算機(jī)?⑴.更多的指令和復(fù)雜的指令有利于提高操作系統(tǒng)的效率,縮短指令系統(tǒng)與高級語言的語義差別。⑵.為了向下兼容而只能擴(kuò)充不能減去任意一條指令。⑶.缺點(diǎn):研制周期變長,調(diào)試和維護(hù)難度加大,系統(tǒng)性能下降。例:DEC公司的VAX11/780有303條指令,18種尋址方式,我們稱這些計算機(jī)為復(fù)雜指令系統(tǒng)計算機(jī)為CISC,intel公司的i80X86微處理器,IBM公司的大型、中型計算機(jī)等均為CISC。,,,,,,,2、高級語言中各種語句的動態(tài)出現(xiàn)頻度,,,3、精減指令系統(tǒng)(RISC),選取使用頻率最高的一些簡單指令,指令條數(shù)少;尋址方式簡單指令長度固定,指令格式簡單CPU設(shè)置大量寄存器只有存/取數(shù)指令才能訪問存儲器,其余指令的操作都在寄存器之間進(jìn)行.每一個機(jī)器周期完成一條機(jī)器指令。,⑴RISC產(chǎn)生的時代背景從計算機(jī)的發(fā)展過程來看,指令系統(tǒng)是隨著計算機(jī)體系結(jié)構(gòu)的完善和性起來的。?早期的計算機(jī)結(jié)構(gòu)簡單,指令條數(shù)少,指令系統(tǒng)功能弱,計算機(jī)的性能較差。?隨著VLSI技術(shù)的迅速發(fā)展,硬件成本不斷下降,軟件成本不斷上升,促進(jìn)人們在指令系統(tǒng)中增加更多的指令和更復(fù)雜的指令,以適應(yīng)不同應(yīng)用領(lǐng)域的需要。?特別是系列機(jī)問世之后,為了能做到程序兼容,新設(shè)機(jī)型或高檔機(jī)除了要繼承老機(jī)器的指令系統(tǒng)中的全部指令外,還要增加若干新的指令,從而導(dǎo)致同一系列計算機(jī)的指令系統(tǒng)越來越復(fù)雜,機(jī)器結(jié)構(gòu)也越來越復(fù)雜。,,,對CISC指令系統(tǒng)所作的運(yùn)行統(tǒng)計分析表明,各種指令使用頻率相差懸殊,常用的較為簡單的指令,僅占指令總數(shù)的20%,但在程序中使用的頻率卻占80%。下表是HP公司研究了IBM370計算機(jī)的高級語言運(yùn)行情況后所得到的統(tǒng)計數(shù)據(jù)。,,,根據(jù)上述分析情況,國外一些計算機(jī)公司和大學(xué)開展了對指令系統(tǒng)合理性的研究,1975年IBM公司的JohnCocke提出了精簡指令系統(tǒng)的想法,后來出現(xiàn)了各種各樣的“精簡指令系統(tǒng)計算機(jī)”,簡稱RISC(ReducedInstructionSetComputer)。也稱為RISC技術(shù)。,RISC技術(shù)的實(shí)質(zhì)是要求指令系統(tǒng)簡化,盡量使用寄存器-寄存器操作指令,指令操作在一個周期內(nèi)完成,指令格式力求一致,以利于提高編譯的效率。,,,⑵早期CISC設(shè)計風(fēng)格的主要特點(diǎn):①指令系統(tǒng)復(fù)雜。具體表現(xiàn)在指令數(shù)多、尋址方式多、指令格式多;②絕大多數(shù)指令需要多個時鐘周期才能執(zhí)行完成;③各種指令都可訪問存儲器;④采用微程序控制;⑤有專用寄存器;⑥難以用優(yōu)化編譯生成高效的目標(biāo)代碼程序。,,,(3)RISC技術(shù)的主要特征:①一個有限的簡單指令集:選用使用頻率最高(80%-90%)的一些簡單指令;指令長度固定,指令格式種類少,尋址方式種類少;只有取數(shù)/存數(shù)指令訪問存儲器,其余指令的操作都在寄存器之間進(jìn)行;②CPU配備大量的通用寄存器,以寄存器-寄存器方式工作,減少訪存操作;③強(qiáng)調(diào)指令流水線的優(yōu)化,使大多指令可在一個時鐘周期內(nèi)執(zhí)行完畢;④采用由陣列邏輯實(shí)現(xiàn)的組合電路控制器,不用或少用微程序;⑤采用優(yōu)化編譯技術(shù),對寄存器分配進(jìn)行優(yōu)化,保證流水線暢通。,,,?RISC機(jī)則將指令做了簡化,數(shù)量減少,格式也不同,與老機(jī)器不能兼容。因?yàn)榇蠖鄶?shù)用戶的程序是用高級語言編寫的,重新在RISC上編譯一次即可運(yùn)行。?有的公司仍然考慮到目標(biāo)碼兼容的問題,例如HP公司開發(fā)的目標(biāo)碼翻譯器與浮點(diǎn)數(shù)轉(zhuǎn)換軟件等,可使目標(biāo)碼程序在采用RISC技術(shù)的體系計算機(jī)中運(yùn)行。,(4)指令系統(tǒng)的兼容問題,當(dāng)前,計算機(jī)公司生產(chǎn)的各種CISC都能夠?qū)崿F(xiàn)軟件兼容,新型號或高檔機(jī)包含了舊型號或抵擋機(jī)的全部指令并加以擴(kuò)充。因此,用戶的目標(biāo)碼程序可以不加修改直接在新機(jī)器上運(yùn)行。,①CISC的兼容性,②RISC的兼容性,,,,,,,,,4、CISC與RISC的比較,,,,,,,5、典型RISC機(jī)指令系統(tǒng),第七章指令系統(tǒng)小結(jié)1.指令系統(tǒng)指一臺計算機(jī)中所有機(jī)器指令的集合,是表征計算機(jī)性能的重要因素。2.指令系統(tǒng)的性能要求完備性、有效性、規(guī)整形、兼容性3.指令尋址方式順序?qū)ぶ贩绞剑褐噶钪饤l順序執(zhí)行,PC+1->PC跳躍尋址方式:程序轉(zhuǎn)移4.操作數(shù)的尋址方式,引入操作數(shù)尋址方式目的(1)縮短指令長度(2)擴(kuò)大尋址范圍(3)提高編程靈活性,,,5.指令的格式(定長、變長指令的格式)6.典型指令的分類數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、程序控制指令、輸入輸出指令、字符串處理指令、特權(quán)指令、其他指令7.指令系統(tǒng)結(jié)構(gòu)從計算機(jī)指令系統(tǒng)的角度看當(dāng)前的計算機(jī)指令系統(tǒng)結(jié)構(gòu)分為兩大類:復(fù)雜指令集計算機(jī)(CISC)精簡指令集計算機(jī)(RISC),,,本章結(jié)束:繼續(xù)學(xué)習(xí)第八章!,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 指令系統(tǒng) 2012 V1
鏈接地址:http://www.szxfmmzy.com/p-11535010.html