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