組成第十講-指令系統(tǒng)_第1頁
組成第十講-指令系統(tǒng)_第2頁
組成第十講-指令系統(tǒng)_第3頁
組成第十講-指令系統(tǒng)_第4頁
組成第十講-指令系統(tǒng)_第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章

指令系統(tǒng)5.1指令系統(tǒng)的發(fā)展5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7精簡指令系統(tǒng)計算機(RISC)和復(fù)雜指令系統(tǒng)(CISC)5.8指令系統(tǒng)舉例5.9機器語言、匯編語言和高級語言1計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展計算機系統(tǒng)主要由硬件和軟件兩部分組成。軟件最終轉(zhuǎn)換成一系列機器指令后在計算機上執(zhí)行。每條指令規(guī)定機器完成一定的功能。指令系統(tǒng):一臺計算機中所有機器指令的集合稱為這臺計算機的指令系統(tǒng)。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍。2計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展20世紀50年代和60年代早期:計算機所支持的指令系統(tǒng)只有定點加減、邏輯運算、數(shù)據(jù)傳送和轉(zhuǎn)移等十幾至幾十條最基本的指令;尋址方式簡單。60年代后中、后期:指令系統(tǒng)越來越豐富,增加了設(shè)置乘除法運算指令、浮點運算指令、十進制運算指令以及字符串處理指令等,指令數(shù)達一、二百條;尋址方式趨于多樣化。3計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展為了滿足各計算機上的軟件的兼容性,以便在舊機器上編制的各種軟件也能在新的、性能更好的機器上正確運行,因此,在60年代出現(xiàn)了系列計算機。系列計算機:基本指令系統(tǒng)相同,基本體系結(jié)構(gòu)相同的一系列計算機。IBM370系列、VAX-11系列、IBMPC(XT/AT/286/386/486/Pentium)微機系列系列機能解決軟件兼容問題的必要條件是該系列的各機種有共同的指令集,而且新推出的機種的指令系統(tǒng)一定包含舊機種的所有指令,因此,在舊機種上運行的各種軟件可以不加任何修改地在新機種上運行。4計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展指令系統(tǒng)決定了計算機的基本功能,因此指令系統(tǒng)的設(shè)計是計算機系統(tǒng)設(shè)計的一個核心問題。指令系統(tǒng)不僅與計算機的硬件設(shè)計緊密相關(guān),而且直接影響到系統(tǒng)軟件設(shè)計的難易程度。各計算機執(zhí)行的指令系統(tǒng)決定了機器所要求的能力,同時也決定了指令的格式和機器的結(jié)構(gòu)。不同結(jié)構(gòu)的機器和不同的指令格式應(yīng)該具有與之相匹配的指令系統(tǒng)。為此,設(shè)計指令系統(tǒng)時,應(yīng)重視以下幾個方面:指令格式類型操作功能5計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展一個完善的指令系統(tǒng)應(yīng)滿足如下幾方面的要求:完備性:是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。有效性:是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。規(guī)整性:包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。6計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展對稱性:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式。勻齊性:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型;兼容性:至少要能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。7計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展計算機的性能與它所設(shè)置的指令系統(tǒng)有很大關(guān)系,而指令系統(tǒng)的設(shè)置又與機器的硬件結(jié)構(gòu)密切相關(guān)。通常性能較好的計算機都設(shè)置有功能齊全、通用性強、指令豐富的指令系統(tǒng),但這需要復(fù)雜的硬件結(jié)構(gòu)來支持。8計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.1指令系統(tǒng)的發(fā)展然而,指令結(jié)構(gòu)太復(fù)雜也會帶來一些不利的因素,如設(shè)計周期長,正確性難以保證且不易維護等。實驗證明,在如今龐大的指令系統(tǒng)中,只有諸如算術(shù)、邏輯運算、數(shù)據(jù)傳送、轉(zhuǎn)移和子程序調(diào)用等幾十條最基本的指令才是經(jīng)常使用的,而需要大量硬件支持的大多數(shù)較復(fù)雜的指令卻利用率很低,造成硬件資源上的極大浪費。9計算機與信息科學(xué)系董阿妮講師arnnydong號:64816第5章

指令系統(tǒng)5.1指令系統(tǒng)的發(fā)展5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7精簡指令系統(tǒng)計算機(RISC)和復(fù)雜指令系統(tǒng)(CISC)5.8指令系統(tǒng)舉例5.9機器語言、匯編語言和高級語言10計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2指令格式從計算機組成的層次結(jié)構(gòu)來說,指令分為:微指令:是微程序級的命令,它屬于硬件;宏指令:是由若干條機器指令組成的軟件指令,它屬于軟件;機器指令:則介于微指令與宏指令之間,通常簡稱為指令。每一條指令可完成一個獨立的算術(shù)運算或邏輯運算操作。本章所討論的指令,是機器指令。11計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2指令格式5.2.1指令格式5.2.2指令操作碼的擴展技術(shù)5.2.3指令長度與字長的關(guān)系12計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式計算機的指令格式與機器的字長、存儲器的容量及指令的功能密切相關(guān)。根據(jù)不同的機器,指令的格式也是多樣化的,為了使硬件能執(zhí)行不同類型的操作,指令必須是二進制編碼。指令字一般為計算機的一個字長度,在該字中包含操作碼、地址碼、各種特征和校驗碼等信息。13計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式一條指令應(yīng)包含如下信息:進行何種操作:即操作性質(zhì)。體現(xiàn)在指令中被稱為操作碼。操作的對象:數(shù)據(jù)來源以及如何尋找操作數(shù)。體現(xiàn)在指令中被稱為地址碼。操作結(jié)果:結(jié)果存放在何處。下一條指令的地址:順序執(zhí)行時,下條指令的地址由計數(shù)器(PC)指出;當改變程序的運行順序(如轉(zhuǎn)移、調(diào)用子程序)時,下條指令的地址才由指令給出。14計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式表示一條指令的機器字,就稱為指令字,通常簡稱指令。指令字長度:一個指令字中包含二進制代碼的位數(shù)。機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù),它決定了計算機的運算精度。指令格式:是指令字用二進制代碼表示的結(jié)構(gòu)形式。15計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式指令由操作碼和地址碼兩部分組成,它的基本格式如下:操作碼地址碼16計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式操作碼操作碼是說明指令操作性質(zhì)的二進制數(shù)代碼。操作碼字段表征指令的操作特性與功能;指令的操作碼表示該指令應(yīng)進行什么性質(zhì)的操作,如進行加法、減法、乘法、除法、取數(shù)、存數(shù)等等。操作碼所占的二進制位數(shù)決定了一臺計算機所能允許的指令條數(shù)。例如,操作碼占用六位二進制碼時,這臺計算機最多允許有:

26=64條指令17計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式組成操作碼字段的位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模。每條指令都要求它的操作碼必須是獨一無二的位組合。指令系統(tǒng)中指令的個數(shù)N與操作碼的位數(shù)n,必須滿足關(guān)系式:N≤2n18計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式地址碼地址碼字段通常指定參與操作的操作數(shù)地址和運算結(jié)果的地址。根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。指令中的地址碼用來指出該指令的源操作數(shù)地址(一個或兩個)、結(jié)果地址及下一條指令的地址。這里的地址可以是主存地址,也可以是寄存器地址,甚至可以是I/O設(shè)備的地址。目前二地址和一地址指令格式用的最多。19計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式零地址指令零地址指令的指令字中只有操作碼,而沒有地址碼。指令格式:執(zhí)行零地址指令時,被運算的操作數(shù)地址全部是隱含的,指令格式中只說明作什么操作。這種指令有兩種可能:無需任何操作數(shù)。如空操作指令,停機指令等。所需的操作數(shù)是默認的:堆棧。OP20計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式一地址指令指令中只給出一個操作數(shù)地址,另一個操作數(shù)地址和目的地址則是隱含的。這個隱含的地址就是運算器的累加寄存器AC。一地址指令常稱為單操作數(shù)指令。指令格式:操作:(AC)OP(A)→AC指令中給出的一個地址既是操作數(shù)的地址,又是操作結(jié)果的存儲地址。OPA21計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式指令中提供的一個地址提供一個操作數(shù),另一個操作數(shù)是由機內(nèi)硬件寄存器“隱含”地自動提供的。所謂“隱含”是指此操作數(shù)在指令中不出現(xiàn),而是按照事先約定由寄存器默認提供,運算結(jié)果仍送到寄存器中。因為這個寄存器在連續(xù)運算時,保存著多條指令連續(xù)操作的累計結(jié)果,故稱為累加器(AC)。22計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式采用一地址指令編寫的程序,其指令在內(nèi)存中也要順序存放,由程序計數(shù)器自動增量控制其順序執(zhí)行。程序轉(zhuǎn)向時,也用轉(zhuǎn)移指令改變程序的執(zhí)行方向。在程序執(zhí)行前,必須用一條“取數(shù)指令”把其中一個操作數(shù)放到累加寄存器中。程序結(jié)束后,累加寄存器的內(nèi)容已被修改。若要將累加寄存器中的結(jié)果送回內(nèi)存,則必須使用“存數(shù)指令”。完成一條指令只需兩次訪存。23計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式二地址指令二地址指令有兩個地址碼字段A1和A2,分別指明參與操作的兩個數(shù)在內(nèi)存中或運算器通用寄存器的地址,其中地址A2兼做存放操作結(jié)果的地址。指令格式:操作:(A1)OP(A2)→A2OP:操作碼;A1:第一操作數(shù)地址;A2:既作第二操作數(shù)地址,又作目的地址。OPA1A224計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式把保存操作前原來操作數(shù)的地址稱為源點地址,把保存指令執(zhí)行結(jié)果的地址稱為終點地址或目的地址。將源點與終點操作數(shù)進行操作碼規(guī)定的操作后,將結(jié)果存入終點地址。通常二地址指令又稱為雙操作數(shù)指令。25計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式使用二地址指令編寫的程序,其指令在內(nèi)存中也要依次存放,才能用程序計數(shù)器自動增量使之順序執(zhí)行。若程序發(fā)生轉(zhuǎn)向時,也必須用轉(zhuǎn)移指令改變程序的執(zhí)行順序。當二地址指令執(zhí)行之后,A2中的內(nèi)容被修改了。有的機器規(guī)定A1為目的地址,這時則是A1的內(nèi)容被修改了。26計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式在二地址指令格式中,從操作數(shù)的物理位置來說,可歸結(jié)為三種類型:存儲器-存儲器(SS)型指令:訪問內(nèi)存的指令格式寄存器-寄存器(RR)型指令:訪問寄存器的指令格式寄存器-存儲器(RS)型指令27計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式三地址指令三地址指令字中有三個操作數(shù)地址A1,A2和A3。指令格式:操作:(A1)OP(A2)→A3其操作是對A1、A2指出的兩個操作數(shù)進行操作碼所規(guī)定的操作,并將結(jié)果存入A3中。OPA1A2A328計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式多地址指令格式例如四地址指令格式。指令格式:操作:(A1)OP(A2)→A3OP:操作碼;A1:第一地址碼,存放第一操作數(shù);A2:第二地址碼,存放第二操作數(shù);A3:第三地址碼,存放操作結(jié)果;A4:第四地址碼,存放下條要執(zhí)行指令的地址。OPA1A2A3A429計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式多地址指令格式的特點:直觀明了;程序執(zhí)行的流向明確;操作數(shù)和結(jié)果可以分散在內(nèi)存各處。但是指令字長度太長。這種指令直觀易懂,后續(xù)指令的地址可任意填寫。因為程序中大部分指令都是順序執(zhí)行的,當采用指令計數(shù)器后,A4地址可以省去。30計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式指令格式設(shè)計準則指令字長要短,以得到時間和空間上的優(yōu)勢。指令字長必須有足夠的長度。指令字長一般應(yīng)是機器字符長度的整數(shù)倍以便存儲系統(tǒng)的管理。若機器中字符碼長是L位,則指令字長最好是L,2L,4L,8L等。指令格式的設(shè)計還與如何選定指令中操作數(shù)地址的位數(shù)有關(guān)。31計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.1指令格式指令格式舉例:8位微型機:字長只有8位,指令格式包含單字長指令、雙字長指令、三字長指令等多種。內(nèi)存按字節(jié)編址,所以單字長指令每執(zhí)行一條指令后,指令地址加1。雙字長指令或三字長指令每執(zhí)行一條指令時,指令地址要加2或加3,可見多字長的指令格式不利于提高機器速度。Pentium指令格式:指令字長度是可變的:從1字節(jié)到12字節(jié),還可以帶前綴(對其后的指令本身進行顯示約定,每個前綴占1個字節(jié))。32計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2指令格式5.2.1指令格式5.2.2指令操作碼的擴展技術(shù)5.2.3指令長度與字長的關(guān)系33計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)操作碼字段分兩種:固定長度操作碼固定長度操作碼是指操作碼所占的二進制位數(shù)固定不變,而且集中放在指令字的一個字段中。這種格式有利于簡化硬件設(shè)計,減少指令譯碼時間,廣泛用于字長較長的大、中型計算機和超級小型計算機中。例如IBM370和VAX﹣11系列機中,操作碼的長度都是8位,可表示256條指令。34計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)可變長度操作碼可變長度操作碼是操作碼擴展技術(shù)的應(yīng)用,即操作碼的長度是可變的,且分散地放在指令的不同字段中。這種格式有利于壓縮程序中操作碼的平均長度,在字長較短的微型機中被廣泛應(yīng)用。如:PDP-11,INTEL8086/80386等,其操作碼的長度均是可變的。35計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)PDP/11系列機指令格式36計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)下圖是一種擴展操作碼的安排示意。這是一個16位字長的指令碼,包括4位基本操作碼字段和三個4位長的地址字段。4位基本操作碼,若全部用于三地址指令,則有16條。顯然,4位基本操作碼是不夠的,必須向地址碼字段擴展操作作碼的長度。

OP

A1

A2

A3

4位4位4位4位37計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)15條三地址指令的操作碼由4位基本操作碼0000~1110所給定,剩下一個1111則用于把操作碼擴展到X地址碼字段,即由4位擴展到8位;38計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)14條二地址指令的操作碼由8位操作碼的1111,0000~1111,1101給定,剩下的1111,1110和1111,1111又可用于把操作碼擴充到Y(jié)地址字段,即從8位又擴充到12位;39計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)31條一地址指令的操作碼由12位操作碼的1111,1110,0000~1111,1111,1110給定。15條三地址指令14條二地址指令31條一地址指令

0001XXXXYYYYZZZZ

1110XXXXYYYYZZZZ

11110000YYYYZZZZ

11110001YYYYZZZZ

11111101YYYYZZZZ

111111100000ZZZZ

111111100001ZZZZ

111111111110ZZZZ

┆0000XXXXYYYYZZZZ40計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)由此類堆,還可以把剩下的1111,1111,1111擴充到Z地址碼字段而形成的16位操作碼,這時還可由1111,1111,1111,0000~1111,1111,1111,1111給出16條零地址指令。

11111111000011111111

1111000111111111

1111

111116零41計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)除了這種安排外,還有多種其它安排方法。如:形成15條三地址指令,15條二地址指令,15條一地址指令,16條零地址指令,共61條指令。實際的機器可以采用各種靈活的擴展方式,其思路與此類似。42計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.2指令操作碼的擴展技術(shù)上述方法是在不增加指令長度的情況下,采用對地址少的指令使用較長的操作碼,對地址數(shù)多的指令使用較短的操作碼。其實質(zhì)是增加了指令的數(shù)量,豐富了指令的功能。在可變長操作碼的指令系統(tǒng)設(shè)計中,究竟使用何種擴展方法為好,指令的使用頻度(即在程序中出現(xiàn)的概率)是非常重要的依據(jù)。即頻度高的指令應(yīng)分配短的操作碼,頻度低的指令則分配較長的操作碼。這樣,既可有效地縮短操作碼在程序中的平均長度,節(jié)省存儲空間,又可縮短常用指令的譯碼時間以提高程序的運行速度。其缺點是譯碼系統(tǒng)比固定操作碼復(fù)雜,增加了設(shè)計控制器的難度,需要更多的硬件作支持。43計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2指令格式5.2.1指令格式5.2.2指令操作碼的擴展技術(shù)5.2.3指令長度與字長的關(guān)系44計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.3指令長度與字長的關(guān)系機器字長機器字長度簡稱字長,指計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。字長是計算機中的一項重要技術(shù)指標,字長越長,計算機的運算精度越高;字長還能反映指令的直接尋址能力,若字長n位全用來尋址,可直接尋址2n個字節(jié)。為了便于處理字符數(shù)據(jù)及盡可能地利用存儲空間,一般把機器字長定為字節(jié)長度(8位)的整數(shù)倍,即是8位、16位、32位或64位。微型、小型機的字長多為8位、16位和32位,中、大型機的字長多為32位和64位。因此,一個字中可以存儲1個、2個、4個或8個字符。45計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.3指令長度與字長的關(guān)系指令字長指令字的長度取決于操作碼的長度、操作數(shù)地址的長度和操作數(shù)地址的個數(shù)。由于操作碼的長度、操作數(shù)地址的長度以及所采用操作數(shù)地址數(shù)目不同,各種指令的長度不是固定的,當然也不是任意的。為了充分利用存儲空間,指令字的長度也定為字節(jié)長度的整數(shù)倍。例如INTEL8086/80586系列機的指令長度分別為8位、16位、24位、32位、48位等。而最長的指令可達120位。46計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.3指令長度與字長的關(guān)系指令字長與機器字長的關(guān)系指令字長度與機器字長度沒有固定的關(guān)系,它可以等于機器字長,也可以大于或小于機器字長。指令字長度等于機器字長度的指令,稱為單字長指令;指令字長等于兩個機器字長的指令,稱為雙字長指令;指令字長度只有半個機器字長度的指令,稱為半字長指令。例如IBM370系列機的機器字長為32位,它卻有16位的半字長指令、32位的單字長指令、48位的一個半字長指令。47計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.3指令長度與字長的關(guān)系等字長指令結(jié)構(gòu)在同一個指令系統(tǒng)中,所有的指令字長度都是相等的,稱為等字長指令字結(jié)構(gòu),這種指令字結(jié)構(gòu)簡單,控制方便;變字長指令結(jié)構(gòu)如果各種指令字長度隨指令的功能而變化,如有的指令是單字長指令,有的指令是雙字長指令或三字長指令,則稱為變字長指令結(jié)構(gòu),這種指令字結(jié)構(gòu)靈活,能充分利用指令字長度,但指令的控制較復(fù)雜。48計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.2.3指令長度與字長的關(guān)系各種指令字的結(jié)構(gòu)情況地址

II+1I+2I+3指令指令指令指令┆一個字長┆┆指令指令指令指令地址

II+1I+2I+3一個字長指令指令指令指令┆地址

II+1I+2I+3指令1指令2一個字長┆單字長指令雙字長指令半字長指令變字長指令指令3一個字長地址II+1I+2I+3I+4I+5I+6指令1指令2┆49計算機與信息科學(xué)系董阿妮講師arnnydong號:64816第5章

指令系統(tǒng)5.1指令系統(tǒng)的發(fā)展5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7精簡指令系統(tǒng)計算機(RISC)和復(fù)雜指令系統(tǒng)(CISC)5.8指令系統(tǒng)舉例5.9機器語言、匯編語言和高級語言50計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.3數(shù)據(jù)表示在計算機的基本數(shù)據(jù)有邏輯(布爾)數(shù)、定點數(shù)(整數(shù))、浮點數(shù)(實數(shù))、十進制數(shù)、字符串、數(shù)組等。對這些數(shù)據(jù)的運算可以設(shè)置專門的指令;也可以僅設(shè)置最簡單的算術(shù)邏輯運算指令,而通過程序的執(zhí)行實現(xiàn)其他類型數(shù)據(jù)的處理,但后者的速度下降很多。在機器中若設(shè)置能夠直接對矩陣向量數(shù)據(jù)(數(shù)組)進行運算的指令及硬件,可以大大提高對向量、數(shù)組的處理速度,這一般在巨型機中才采用。51計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.3數(shù)據(jù)表示目前計算機所用數(shù)據(jù)字長大部分已經(jīng)達到64位。存儲器的地址,一般按字節(jié)表示。計算機的指令系統(tǒng)可支持對字節(jié)、半字、字、雙字的運算,有些計算機有位處理指令。52計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.3數(shù)據(jù)表示邊界對齊問題為便于硬件實現(xiàn),一般要求多字節(jié)數(shù)據(jù)對準邊界。當所存數(shù)據(jù)不能滿足此要求時,則填充一個至多個空白字節(jié)。53計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.3數(shù)據(jù)表示也有的計算機不要求對準邊界,但可能增加訪問存儲器次數(shù)。在不按邊界對準的計算機中,訪存指令所要求存取的數(shù)據(jù),可能在兩個存儲單元中,因此需要訪問兩次存儲器,而且還要對高低字節(jié)的位置進行調(diào)整。54計算機與信息科學(xué)系董阿妮講師arnnydong號:64816第5章

指令系統(tǒng)5.1指令系統(tǒng)的發(fā)展5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7精簡指令系統(tǒng)計算機(RISC)和復(fù)雜指令系統(tǒng)(CISC)5.8指令系統(tǒng)舉例5.9機器語言、匯編語言和高級語言55計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)存儲器既可用來存放數(shù)據(jù),又可用來存放指令。因此,當某個操作數(shù)或某條指令存放在某個存儲單元時,其存儲單元的編號,就是該操作數(shù)或指令在存儲器中的地址。形式地址:指令中直接給出的地址;有效地址:操作數(shù)所在的真實地址;即實際訪問的存儲單元地址。56計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)在存儲器中,操作數(shù)或指令字寫入或讀出的方式,有地址指定方式、相聯(lián)存儲方式和堆棧存取方式。幾乎所有的計算機,在內(nèi)存中都采用地址指定方式。當操作數(shù)或指令字寫入或讀出的方式采用地址指定方式時,形成操作數(shù)或指令地址的方式,稱為尋址方式。也就是從形式地址生成有效地址的各種方式。由于程序和數(shù)據(jù)的存入和取出都要與存儲器打交道,因此尋址方式又統(tǒng)稱為存儲器訪問技術(shù)。57計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)尋址的目的豐富程序設(shè)計手段,提高程序質(zhì)量;減少訪問主存的次數(shù),壓縮程序占用的存儲空間。保證指令的地址碼字段盡可能縮短,而訪問的存儲空間盡可能地大。58計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)尋址方式分為兩類,即指令尋址方式和數(shù)據(jù)尋址方式。前者比較簡單,后者比較復(fù)雜。因為操作數(shù)本身不能像指令那樣順序排列,很多操作數(shù)是公用的,集中放在某一劃定的區(qū)域。59計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)指令的尋址方式指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞?,另一種是跳躍(轉(zhuǎn)移)尋址方式。順序?qū)ぶ贩绞街噶畹刂吩趦?nèi)存中按順序安排,當執(zhí)行一段程序時,通常是一條指令接一條指令的順序執(zhí)行。從存儲器取出第一條指令,然后執(zhí)行這條指令;接著從存儲器取出第二條指令,再執(zhí)行第二條指令;接著再取出第三條指令……這種程序順序執(zhí)行的過程,我們稱為指令的順序?qū)ぶ贩绞?。為此,必須使用程序計?shù)器(又稱指令指針寄存器)PC來計數(shù)指令的順序號,該順序號就是指令在內(nèi)存中的地址。60計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)61計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)轉(zhuǎn)移尋址方式當程序轉(zhuǎn)移執(zhí)行的順序時,指令的尋址就采取轉(zhuǎn)移尋址方式。所謂轉(zhuǎn)移,是指下條指令的地址碼不是由程序計數(shù)器給出,而是由本條指令給出。程序轉(zhuǎn)移后,按新的指令地址開始順序執(zhí)行。指令計數(shù)器的內(nèi)容也必須相應(yīng)改變,以便及時跟蹤新的指令地址。采用指令轉(zhuǎn)移尋址方式,可以實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,從而能縮短程序長度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞?。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令的轉(zhuǎn)移尋址而設(shè)置的。62計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)663計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)操作數(shù)的尋址方式操作數(shù)的尋址就是尋找操作數(shù)的地址,其目的是尋找所需要的操作數(shù)。尋址方式就是指尋找操作數(shù)地址所用的方法,它與計算機的硬件結(jié)構(gòu)密切相關(guān),對指令的格式和功能都有極大的影響。由于各種計算機的硬件結(jié)構(gòu)各不相同,指令格式亦多種多樣,因而,尋址方式也就千差萬別。這里僅對常見的操作數(shù)地址尋址方式作介紹。用這些最基本的尋址方式可以組合成各類計算機中更為復(fù)雜的尋址方式。64計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)立即尋址(立時尋址、立即操作數(shù))指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身,這種尋址方式稱為立即尋址。在微型和小型計算機中,內(nèi)存是按字節(jié)編址的。若前一個字節(jié)是操作碼,緊跟著的第二個字節(jié)就是立即操作數(shù)。因此,立即數(shù)尋址又稱為鄰接型尋址,或者說,操作數(shù)緊跟著操作碼。OP立即數(shù)65計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)立即尋址的指令執(zhí)行起來很快,CPU將數(shù)據(jù)與指令一起從存儲器取出,不必通過尋址計算就獲得了操作數(shù),也不必再次訪問存儲器。提高了指令的執(zhí)行速度,但操作數(shù)只是指令的一部分,其數(shù)值受到了限制。便于程序員使用。但因為數(shù)據(jù)和地址都是固定的,所以靈活性最差??捎脕硖峁┏?shù),設(shè)置初始值。66計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)直接尋址在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D,即操作數(shù)地址在指令中。對于使用次數(shù)很少又不需要做什么變化的地址碼,可采用直接尋址方式。指令中的地址D就是操作數(shù)的有效地址。E=D67計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)68計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)間接尋址是相對于直接尋址而言的,在間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,或者說D單元的內(nèi)容才是操作數(shù)的有效地址。即操作數(shù)地址在內(nèi)存中。69計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)指令中的地址碼部分給出的既不是操作數(shù),又不是操作數(shù)的地址,而是存放操作數(shù)地址的內(nèi)存單元的地址,這個地址叫做間接地址。其尋址方式稱為間接尋址方式,簡稱間址。70計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)間接尋址可分為一級間接尋址和多級間接尋址多級間接尋址方式的一級間接地址用指令間址表征,二級以后的間接地址用間址的第一位作為多級間接尋址標志。其缺點是要多次訪問存儲器,延緩了指令執(zhí)行的速度。71計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)間接尋址似乎很復(fù)雜,但卻比直接尋址靈活的多;采用間接尋址方式可用指令的短地址訪問存儲器的任何單元。例:指令包括的間址只有8位,只能表示28個單元。通過間址操作后,從存儲器取出16位有效地址就能訪問整個64KB的空間了。72計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)間接尋址方式實現(xiàn)簡便,對編程帶來較大的靈活性,但是它多次訪問內(nèi)存,增加了指令的執(zhí)行時間;占用主存儲器單元多。對程序編制能帶來較大的靈活性表現(xiàn)在:間接尋址方式的指令可以訪問大的存儲空間,擴大了指令的尋址能力。當操作數(shù)地址改變時,只需修改間接地址指示器的單元內(nèi)容,而不必修改指令,原指令的功能照樣實現(xiàn)。這給程序編制帶來很大方便。73計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)例如:內(nèi)存MOVX2

Ri

Ri10252200122000132

3100310010250操作碼特征寄存器號地址碼DMOV操作碼特征寄存器號地址碼D內(nèi)存Ri03200X2

Ri

0132013232001025MOV102574計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)寄存器尋址在現(xiàn)在流行的指令系統(tǒng)中,使用通用寄存器越來越多,這是計算機結(jié)構(gòu)發(fā)展的趨勢。現(xiàn)在的小型計算機和大型計算機通用寄存器的數(shù)量達32個。這種發(fā)展增強了計算機指令系統(tǒng)的功能,并提高了靈活性。通用寄存器可作為累加器、變址器、基址器、堆棧指示器、程序狀態(tài)寄存器和各種狀態(tài)寄存器等。當操作數(shù)不放在內(nèi)存中,而是放在CPU的通用寄存器中時,可采用寄存器尋址方式。75計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)寄存器尋址方式含義:把指令字中的地址碼用寄存器編號來代替,寄存器的作用由尋址方式來指定。目的:引入寄存器參與尋址過程的目的是改善尋址的質(zhì)量。76計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)通用寄存器參與尋址過程,帶來如下特點:壓縮指令字長度或騰出更多的位讓給操作碼,以產(chǎn)生更多的操作功能。加快尋址過程和數(shù)據(jù)流動,從而加快指令的執(zhí)行速度??蓴U大尋址范圍。給程序設(shè)計增加許多新的手段。缺點:開始時必須把數(shù)據(jù)存入通用寄存器,跟蹤其內(nèi)容的變化,并需將內(nèi)容放回存儲器以便保存。77計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)寄存器直接尋址地址碼給出寄存器編號,寄存器內(nèi)容就是操作數(shù),這種方法稱寄存器直接尋址。使用寄存器直接尋址的雙地址指令格式是:操作:(R1)OP(R2)→R2這是一種寄存器-寄存器指令,常用于實現(xiàn)算術(shù)操作與邏輯操作。寄存器直接尋址還可以與直接、間接尋址搭配稱組合型尋址方式。OPR1R278計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)寄存器-存儲器操作的雙地址指令格式。79計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)寄存器間接尋址以寄存器的內(nèi)容為地址訪問存儲器后獲得操作數(shù)稱為寄存器間接尋址。使用寄存器間接尋址的雙指令格式是:操作:((R1))OP((R2))→R2雙括號表示間接尋址,本質(zhì)上是存儲器-存儲器操作指令。這種尋址方式比普通的間接尋址方式快,因為它不必從存儲器取出有效地址,而且寄存器地址比存儲器的地址短。OP@R1@R280計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)例:執(zhí)行ADD@Ri

指令時,說明Ri不是操作數(shù)的有效地址,而是存放操作數(shù)有效地址的寄存器號。

ADD

@

Ri操作數(shù)地址

Ri內(nèi)存操作數(shù)操作碼尋址特征寄存器號81計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)82計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)基址尋址方式當存儲容量較大,所需地址碼的長度大于字長時,指令中的地址碼部分直接給出的地址不可能直接訪問存儲器的所有單元。因此,把整個存儲空間分成若干段,每段的首地址存放在一個基址寄存器中,段內(nèi)的位移量由指令直接給出。于是,存儲器的實際地址就等于基址寄存器的內(nèi)容加上段內(nèi)位移量。這就叫做基址寄存器尋址方式,簡稱基址尋址。83計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)基址尋址方式是大型機采用的一種技術(shù)。它將用戶程序的邏輯地址轉(zhuǎn)換成主存的物理地址?;穼ぶ贩绞接行У刂返墓綖椋河行У刂稥=基址值(B)+位移量(D)基址尋址方式是在管態(tài)方式下使用的修改指令地址字段的一種技術(shù)。址84計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)85計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)變址尋址方式變址尋址是將指令中的基地址碼和一個“變址值”相加后形成操作數(shù)的有效地址?!白冎分怠贝娣旁谝粋€專用的變址寄存器Ri中或?qū)S玫膬?nèi)存單元中。變址值是根據(jù)程序需要而設(shè)置的,與本條指令中的地址長度無關(guān),只要變址寄存器的字長足夠長,可以進行內(nèi)存全容量的訪問。使用起來十分靈活。86計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)提供變量值的通用寄存器稱為變址寄存器。指令地址字段提供的直接地址又稱為形式地址,記為D。變址尋址方式指定某寄存器作為變址寄存器,并在指令地址段中給出一個形式地址,變址寄存器的內(nèi)容與形式地址之和就是有效的操作數(shù)地址。計算機有效地址的公式為:有效地址E=變址值(Rx)±形式地址D。使用變址尋址方式的目的不在于擴大尋址空間,而在于實現(xiàn)程序塊的規(guī)律變化。87計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)變址器提供的變址值作為基準地址的話,形式地址則提供對基地址的兩個方向的位移,這種形式又稱為位移尋址方式,常數(shù)D稱為位移量,它是帶有符號的數(shù)字。88計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)89計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)內(nèi)存20501000操作碼尋址特征變址單元號opX3

Ri00801080基地址碼D內(nèi)存操作碼尋址特征變址器號基地址碼D

2050

1080變址寄存器

1000Ri

OP

X3

Ri

0080X3=1EA=(Ri)+D X3=1EA=(Ri)+D有效地址

EA=1000+0080=1080 有效地址EA=1000+0080=1080操作數(shù)=(1080)=2050 操作數(shù)=(1080)=2050(a)Ri為變址寄存器時的變址尋址 (b)Ri為內(nèi)存變址單元時的變址尋址90計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)變址尋址的特點:變址尋址速度要比直接尋址慢,因為CPU必須執(zhí)行一次加法操作以獲得有效地址。由于變址寄存器字長和機器字長相等,變址后的有效地址比形式地址長得多,能夠?qū)け檎麄€尋址空間,擴大了尋址范圍。多次使用Rx的變址值,使得硬件參與地址的計算過程,能壓縮程序的指令條數(shù),加快指令的執(zhí)行。91計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)變址尋址進一步發(fā)展成為具有自動增/減變址功能的尋址方式。變址尋址和間接尋址相結(jié)合也是一種技巧性很強的尋址手段。按操作順序可分為前置變址和后置變址尋址。兩種尋址功能都能生成直接地址。前置尋址方式是先變址后間址。后置尋址方式是先間址后變址。后置變址技術(shù)更多應(yīng)用于小型/微型機設(shè)計上。92計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)93計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)94計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)OPX4Ri

0080

100010802000內(nèi)存20000300RiOPX5Ri

00801000130002000800內(nèi)存Ri操作碼尋址特征變址器號基地址碼DX4=1EA=((Ri)+D) X5=1EA=(D)+(Ri)有效地址

EA=(1000+0080)=2000 有效地址

EA=1300+1000=2300操作數(shù)

=(2000)=0300 操作數(shù)

=(2300)=0200(a)前置變址方式 (b)后置變址方式95計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)基址和變址的應(yīng)用方向基址尋址面向系統(tǒng),主要用于邏輯地址到物理地址的變換,用來解決程序在主存儲器中的再定位和擴大尋址空間等問題。在一些大型機中,基址寄存器是由管理程序利用特權(quán)指令來使用,用戶程序無權(quán)修改它,從而確保了系統(tǒng)的安全性。變址尋址則面向用戶,用于訪問字符串、向量和數(shù)組等成批數(shù)據(jù)。在一些小型機或微型機中,基址尋址和變址尋址實際上已經(jīng)合二為一了。96計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)相對尋址方式相對尋址是把程序計數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成操作數(shù)的有效地址。程序計數(shù)器的內(nèi)容就是當前指令的地址?!跋鄬Α睂ぶ?,就是相對于當前的指令地址而言。此時形式地址D通常稱為偏移量,其值可正可負,相對于當前指令地址進行浮動。97計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)相對尋址方式是變址尋址方式的特例。相對尋址時,以程序計數(shù)器為變址器,指令地址為變址值,與指令提供的位移地址相加,從而得到有效地址。公式:有效地址E=現(xiàn)行程序地址(PC)±位移量(D)相對地址指出的地址是與現(xiàn)行指令地址之間的相對位置,而不是絕對地址。98計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)用法:當不同用戶使用同一標準子程序時,若能將該程序裝入不同的存儲區(qū)并就地運行,它要求子程序內(nèi)部地址相對獨立而與用戶程序的地址無關(guān)。若一組指令以保持它們間的相對距離不變這樣一種方法移動,那么對存儲器的所有位置都能使用相對于PC的同一個偏移值。這種情況下我們可以采用相對尋址方式。99計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)例:將某一個標準子程序浮動300個單元,執(zhí)行加法指令的結(jié)果仍然不變。100計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)隱含尋址在指令中不明顯地給出操作數(shù)的地址,其操作數(shù)或操作數(shù)的地址隱含在某個通用寄存器中或指定的存儲單元中。例如:單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對單地址指令格式來說是隱含地址。這種方式可以縮短指令的長度,在字長較短的微型機或小型機中被廣泛采用。101計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.4尋址方式(編址方式)堆棧尋址方式堆棧是一組能存儲和取出數(shù)據(jù)的暫時存儲單元,在這一點上,堆棧有點像存儲器;很多計算機把存儲器的一部分用作堆棧;堆棧和其它形式的存儲器之間的差別是:它們對數(shù)據(jù)的存取方法和尋址方式有所不同;堆棧采用“后進先出”的工作方式。102計算機與信息科學(xué)系董阿妮講師arnnydong號:64816第5章

指令系統(tǒng)5.1指令系統(tǒng)的發(fā)展5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7精簡指令系統(tǒng)計算機(RISC)和復(fù)雜指令系統(tǒng)(CISC)5.8指令系統(tǒng)舉例5.9機器語言、匯編語言和高級語言103計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5指令類型5.5.1指令的分類及功能5.5.2雙字長介紹(子程序舉例)104計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能指令系統(tǒng)決定了計算機的基本功能,因此指令系統(tǒng)的設(shè)計是計算機系統(tǒng)設(shè)計中的一個核心問題。它不僅與計算機的硬件結(jié)構(gòu)緊密相關(guān),而且直接影響到編寫操作系統(tǒng)和編寫編譯程序的難易程度。設(shè)計一個合理而又有效的指令系統(tǒng)是至關(guān)重要的,它對機器的性能價格比有很大影響。一臺計算機最基本的、必不可少的指令是不多的,因為很多指令都可以用最基本的指令組合來實現(xiàn)。105計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能一臺計算機的指令系統(tǒng)通常有上百條或幾百條指令,從它們所完成的功能來看,一個較為完善的指令系統(tǒng),應(yīng)具備以下各類指令。算術(shù)邏輯運算指令移位操作指令數(shù)據(jù)傳送指令程序控制指令輸入輸出指令堆棧及堆棧操作指令字符串處理指令多處理機指令向量運算指令特權(quán)指令陷阱(TRAP)指令其他指令106計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能算術(shù)邏輯運算指令這類指令主要用于定點或浮點的算術(shù)運算。定點加、減、乘、除運算和浮點加、減、乘、除運算、二進制運算和十進制運算。邏輯加法、邏輯乘法、按位加、求反運算,以及數(shù)值的左、右移位和比較指令。大型機(如IBM370機、國產(chǎn)銀河機、CRAY-1機、CDC的STAR-100機等)中還設(shè)置有向量運算指令,可直接對整個向量或矩陣進行求和、求積運算。107計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能移位操作指令移位操作指令分為算術(shù)移位、邏輯移位和循環(huán)移位三種,可以將操作數(shù)左移或右移若干位。算術(shù)移位和邏輯移位很類似,但由于操作對象不同(前者帶符號、后者無符號)而移位操作有所不同。主要差別在于右移時,填入最高位的數(shù)據(jù)不同。108計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能算術(shù)移位的一個重要的作用是用于實現(xiàn)簡單的乘除運算。算術(shù)左移或右移n位,實現(xiàn)對帶符號數(shù)據(jù)乘以2n或整除以2n的運算;同樣,邏輯左移或右移n位,分別實現(xiàn)對無符號數(shù)據(jù)乘以2n或整除以2n的運算。移位指令的執(zhí)行時間比乘除運算的執(zhí)行時間短。因此采用移位指令來實現(xiàn)上述乘法、除法運算可取得較高的速度。109計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能數(shù)據(jù)傳送指令這類指令的功能是實現(xiàn)寄存器與寄存器,寄存器與存儲單元以及存儲單元與存儲單元之間的數(shù)據(jù)傳送。傳送指令包括將數(shù)據(jù)從存儲器送入寄存器的取數(shù)指令,把運算結(jié)果從寄存器送入存儲器的存儲指令,存儲器內(nèi)數(shù)據(jù)從某一地址移往另一些地址的傳送指令等。110計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能程序控制指令在執(zhí)行程序時,控制各種動作的指令為控制指令。包括根據(jù)對條件的判斷改變程序執(zhí)行順序的轉(zhuǎn)移指令(條件轉(zhuǎn)移指令),也有無條件轉(zhuǎn)移到指定地址的轉(zhuǎn)移指令,還有停止執(zhí)行程序的停止指令和機器內(nèi)的某些指示器的置位、復(fù)位指令等。置位:把兩狀態(tài)存儲器件(如觸發(fā)器)置成“1”態(tài)。復(fù)位:把兩狀態(tài)存儲器件或計數(shù)器置成“0”態(tài)。111計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時,有時機器執(zhí)行到某條指令時,出現(xiàn)了幾種不同結(jié)果,這時機器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進行轉(zhuǎn)移,從而改變程序原來執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。112計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能除各種條件轉(zhuǎn)移指令外,還有無條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用直接尋址和相對尋址方式來確定。轉(zhuǎn)子指令是轉(zhuǎn)向本指令操作地址所指出的子程序入口,并將原程序中下一條指令地址存入內(nèi)存某單元(或指定的某個寄存器)中,以便為返回主程序時提供返回地址。113計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能輸入輸出指令輸入輸出指令主要用來啟動外圍設(shè)備,檢查測試外圍設(shè)備的工作狀態(tài),并實現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。輸入輸出指令是使輸入輸出設(shè)備動作的指令。輸入輸出設(shè)備的種類很多,并且動作也很復(fù)雜,這類指令必須能控制很多種類的動作。因此簡單的指令是無法完成這類功能的,現(xiàn)代計算機多采用通道方式來進行操作,也就是通過通道指令來完成。114計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能堆棧及堆棧操作指令堆棧:是若干個存儲單元(或寄存器)的有序集合,它順序地存放一組元素。數(shù)據(jù)的存取都只能在棧頂單元內(nèi)進行,即數(shù)據(jù)的進棧與出棧都只能經(jīng)過棧頂單元這個“出入口”。堆棧中的數(shù)據(jù)采用“先進后出”或“后進先出”的存取工作方式。115計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能堆棧結(jié)構(gòu)在計算機中的作用具有堆棧結(jié)構(gòu)的機器使用零地址指令,不僅指令長度短,指令結(jié)構(gòu)簡單,機器硬件簡化。實現(xiàn)程序調(diào)用,子程序嵌套調(diào)用和遞歸調(diào)用。對于“中斷”技術(shù),堆棧更是不可缺少的,保存“斷點”和“現(xiàn)場”。116計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能堆棧的操作設(shè)數(shù)據(jù)進棧方向為從高地址向低地址發(fā)展;當向堆棧壓入數(shù)據(jù)時,SP(堆棧指針stackpointer)的內(nèi)容先自動遞減而指向一個新的空棧頂單元,再把數(shù)據(jù)寫入此棧頂單元;當數(shù)據(jù)彈出堆棧時,立即讀出SP所指向的棧頂單元內(nèi)容,再把SP內(nèi)容自動遞增而指向新的棧頂位置。117計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能118計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能字符串處理指令字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串)、字符串比較,字符串匹配,字符串替換(把某一字符串用另一字符串替換)等。這種類型的指令對大量字符串進行各種處理的文字編輯和排版方面非常有用。119計算機與信息科學(xué)系董阿妮講師arnnydong號:648165.5.1指令的分類及功能多處理機指令出現(xiàn)在多處理機或多處理器系統(tǒng)中,比如用于共享資源管理的“測試與設(shè)定”指令,相互通信時的“數(shù)據(jù)交換”指令。這類指令最主要的特點是在指令執(zhí)行過程中不允許打斷,這樣可以避免多個處理器同時讀取和修改共享數(shù)據(jù)區(qū)。120計算機與信息科學(xué)系董阿妮講師a

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論