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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章

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

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

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

OP

A1

A2

A3

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

0001XXXXYYYYZZZZ

1110XXXXYYYYZZZZ

11110000YYYYZZZZ

11110001YYYYZZZZ

11111101YYYYZZZZ

111111100000ZZZZ

111111100001ZZZZ

111111111110ZZZZ

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

11111111000011111111

1111000111111111

1111

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

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計算機與信息科學系董阿妮講師arnnydong號:64816第5章

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

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

Ri

Ri10252200122000132

3100310010250操作碼特征寄存器號地址碼DMOV操作碼特征寄存器號地址碼D內存Ri03200X2

Ri

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

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

ADD

@

Ri操作數地址

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

Ri00801080基地址碼D內存操作碼尋址特征變址器號基地址碼D

2050

1080變址寄存器

1000Ri

OP

X3

Ri

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

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

0080

100010802000內存20000300RiOPX5Ri

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

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

EA=1300+1000=2300操作數

=(2000)=0300 操作數

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論