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

下載本文檔

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

文檔簡介

1、1第四章第四章 指令系統(tǒng)指令系統(tǒng)4.1 指令系統(tǒng)的發(fā)展與性能要求4.2 指令格式4.3 操作數(shù)類型4.4 指令和數(shù)據(jù)的尋址方式4.5 典型指令4.6 ARM匯編語言返回24.1 指令系統(tǒng)的發(fā)展與性能要求指令系統(tǒng)的發(fā)展與性能要求4.1.1 指令系統(tǒng)的發(fā)展4.1.2 對指令系統(tǒng)性能的要求4.1.3 低級語言與硬件結(jié)構(gòu)的關(guān)系34.1.1 指令系統(tǒng)的發(fā)展指令系統(tǒng)的發(fā)展指令系統(tǒng)基本概念l指令:就是要計算機執(zhí)行某種操作的命令。從計算機組成的層次結(jié)構(gòu)來說,計算機的指令有微指令、機器指令和宏指令之分。微指令是微程序級的命令,它屬于硬件;l宏指令:由若干條機器指令組成的軟件指令,它屬于軟件;l機器指令:介于微指

2、令與宏指令之間,通常簡稱為指令,每一條指令可完成一個獨立的算術(shù)運算或邏輯運算操作。l本章所討論的指令,是機器指令。本章所討論的指令,是機器指令。l一臺計算機中所有機器指令的集合,稱為這臺計算機的指令系統(tǒng)。l指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍44.1.1 指令系統(tǒng)的發(fā)展指令系統(tǒng)的發(fā)展發(fā)展情況l復雜指令系統(tǒng)計算機,簡稱CISC。指令系統(tǒng)多達二三百條。 CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。lVLSI技術(shù)發(fā)展引起的問題lVLSI工

3、藝要求規(guī)整性,而大量復雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難。l現(xiàn)在用微程序?qū)崿F(xiàn)復雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。lCISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復雜程度。然而指令復雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結(jié)構(gòu)設計中,軟硬件的功能分配必須恰當,但是如此龐大的指令系統(tǒng)不但使計算機的研制周期變長,難以保證正確性,不易調(diào)試維護,而且由于采用了大量使用頻率很低的復雜指令而造成硬件資源浪費。l精簡指令系統(tǒng)計算機:簡稱RISC,人們又提出了便于VLSI技術(shù)實現(xiàn)的

4、精簡指令系統(tǒng)計算機。(1)選取使用頻率高的簡單指令,指令條數(shù)少。(2)指令條數(shù)固定,指令格式種類少,尋址方式種類少。(3)只有取數(shù)、存數(shù)指令訪問存儲器,其他指令的操作都在寄存器之間進行。54.1.2 對指令系統(tǒng)性能的要求對指令系統(tǒng)性能的要求l完備性:完備性:完備性是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。一臺計算機中最基本、必不可少的指令是不多的。許多指令可用最基本的指令編程來實現(xiàn)。例如,乘除運算指令、浮點運算指令可直接用硬件來實現(xiàn),也可用基本指令編寫的程序來實現(xiàn)。采用硬件指令的目的是提高程序執(zhí)行速度,便于用戶

5、編寫程序。l有效性:有效性:有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。一般來說,一個功能更強、更完善的指令系統(tǒng),必定有更好的有效性。l規(guī)整性:規(guī)整性:規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。對稱性是指:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運算指令可支持字節(jié)、字、雙字整數(shù)的運算,十進制數(shù)運算和單、雙精度浮點數(shù)運算等;指令格式和數(shù)據(jù)格式的一致性是指:指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。例如指令長度和

6、數(shù)據(jù)長度通常是字節(jié)長度的整數(shù)倍。l兼容性:兼容性:系列機各機種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機種上基本軟件可以通用。但由于不同機種推出的時間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。64.1.3 低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與高級語言關(guān)系比較內(nèi)容高級語言低級語言1對程序員的訓練要求(1)通用算法(2)語言規(guī)則(3)硬件知識有較少不要有較多要2對機器獨立的程度獨立不獨立3編制程序的難易程度易難4編制程序所需時間短較長5程序執(zhí)行時間較長短6編譯過程中對

7、計算機資源的要求多少74.2 指令格式指令格式4.2.1 操作碼4.2.2 地址碼4.2.3 指令字長度4.2.4 指令助記符4.2.5 指令格式舉例l指令格式包括兩個方面:操作碼字段操作碼字段地址碼字段地址碼字段84.2.1 操作碼操作碼l設計計算機時,對指令系統(tǒng)的每一條指令都要規(guī)定一個操作碼。指令的操作碼OP表示該指令應進行什么性質(zhì)的操作,如進行加法、減法、乘法、除法、取數(shù)、存數(shù)等等。不同的指令用操作碼字段的不同編碼來表示,每一種編碼代表一種指令。l組成操作碼字段的位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模。較大的指令系統(tǒng)就需要更多的位數(shù)來表示每條特定的指令。l等長(指令規(guī)整,譯碼簡單)l例如IB

8、M 370機,該機字長32位,16個通用寄存器R0R15,共有183條指令;指令的長度可以分為16位、32位和48位等幾種,所有指令的操作碼都是8位固定長度。l固定長度編碼的主要缺點是:信息的冗余極大,使程序的總長度增加。94.2.2 地址碼地址碼l根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。三地址指令二地址指令單地址指令零地址指令104.2.2 地址碼地址碼l三地址指令l指令格式如下:lOP A1 A2 A3l操作碼op 第一操作數(shù)A1 第二操作數(shù)A2 結(jié)果A3 l功能描述:l(A1) op(A2)A3l(PC) +1PCl這種格式雖然省去了一個地址,但指令長度仍

9、比較長,所以只在字長較長的大、中型機中使用,而小型、微型機中很少使用。114.2.2 地址碼地址碼l二地址指令l其格式如下:lOP A1 A2l操作碼op 第一操作數(shù)A1 第二操作數(shù)A2l 功能描述:l(A1) op(A2)A1l(PC)+1PCl二地址指令在計算機中得到了廣泛的應用,但是在使用時有一點必須注意:指令執(zhí)行之后,A1中原存的內(nèi)容已經(jīng)被新的運算結(jié)果替換了。124.2.2 地址碼地址碼l二地址地址根據(jù)操作數(shù)的物理位置分為:lSS 存儲器-存儲器類型lRS 寄存器-存儲器類型lRR 寄存器-寄存器類型慢134.2.2 地址碼地址碼l一地址指令l指令格式為:lOP A1 l 操作碼op

10、第一操作數(shù)A1l功能描述:l(AC) op(A1) A1l(PC)+1PCl單操作數(shù)運算指令,如“+1”、“-1”、“求反”l指令中給出一個源操作數(shù)的地址144.2.2 地址碼地址碼l零地址指令 l其格式為:lOPl 操作碼opl“停機”、“空操作”、“清除”等控制類指令。154.2.3 指令字長度指令字長度l概念l指令字長度(一個指令字包含二進制代碼的位數(shù))l機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。l單字長指令l半字長指令l雙字長指令l多字長指令多字長指令的優(yōu)缺點l優(yōu)點提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題 ;l缺點必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運算速

11、度,又占用了更多的存儲空間。l指令系統(tǒng)中指令采用等長指令等長指令的優(yōu)點:各種指令字長度是相等的,指令字結(jié)構(gòu)簡單,且指令字長度是不變的 ;l采用非等長指令非等長指令的的優(yōu)點:各種指令字長度隨指令功能而異,結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復雜 。164.2.4 指令助記符指令助記符l由于硬件只能識別1和0,所以采用二進制操作碼是必要的,但是我們用二進制來書寫程序卻非常麻煩。l為了便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符用34個英文字母來表示操作碼,一般為英文縮寫不同的計算機系統(tǒng),規(guī)定不一樣必須用匯編語言翻譯成二進制代碼4.2.4 指令助記

12、符指令助記符l典型指令助記符l加法 ADD 001l減法 SUB 010l傳送 MOV 011l跳轉(zhuǎn) JMP 100l轉(zhuǎn)子程序 JSR 101l存數(shù) STO 110l取數(shù) LAD 111184.2.5 指令格式舉例指令格式舉例l8位微型計算機的指令格式l如8088,字長8位,指令結(jié)構(gòu)可變l包括單字長指令、雙字長指令和三字長指令l操作碼長度固定194.2.5 指令格式舉例指令格式舉例lMIPS R4000 20世紀80年代后期 RISC計算機系統(tǒng),32位字長,32個通用寄存器。R型(寄存器)指令:算術(shù)運算數(shù)據(jù)放在通用寄存器中6位 5位 5位 5位 5位 6位 op rs rt rd shamt

13、functI型(立即數(shù))指令:取數(shù)、存數(shù)指令訪問存儲器6位 5位 5位 16位 op rs rt 常數(shù)或地址204.2.5 指令格式舉例:指令格式舉例:ARM指令格式指令格式214.2.5 指令格式舉例指令格式舉例例1分析下列指令格式的特點 15 9 7 4 3 0 OP - 源寄存器 目標寄存器 解:1.單字長二地址指令 2.操作碼字段可以指定128條指令 3.源寄存器和目標寄存器都是通用寄存器,兩個操作都 在寄存器中,RR型指令 4. 常用于算術(shù)邏輯運算 224.2.5 指令格式舉例指令格式舉例例2分析下列指令格式的特點 15 10 7 4 3 0 OP - 源寄存器 變址寄存器 位移量(

14、16位) 解:1.雙字長二地址指令,訪問存儲器 2.操作碼字段可以指定64條指令 3.一個操作數(shù)在源寄存器中,另一個在存儲器中(由變址寄存器和位移量決定),RS型指令234.2.5 指令格式舉例指令格式舉例例3 MIPS R4000匯編語言中,寄存器$s0$s7對應寄存器號為十進制1623,寄存器$t0$t7對應的寄存器號為815。請將下表4條匯編語言翻譯成對應的機器語言十進制數(shù)表示。244.3 操作數(shù)類型操作數(shù)類型4.3.1 一般的數(shù)據(jù)類型4.3.2 Pentium數(shù)據(jù)類型4.3.3 Power PC數(shù)據(jù)類型254.3.1 一般的數(shù)據(jù)類型一般的數(shù)據(jù)類型l地址數(shù)據(jù)地址數(shù)據(jù):無符號整數(shù)。l數(shù)值數(shù)

15、據(jù)數(shù)值數(shù)據(jù):計算機中普遍使用的三種類型的數(shù)值數(shù)據(jù)l1.定點整數(shù),小數(shù) 2.浮點數(shù) 3.壓縮十進制數(shù)。l字符數(shù)據(jù)字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。l邏輯數(shù)據(jù)邏輯數(shù)據(jù):一個單元中有幾位二進制bit項組成,每個bit的值可以是1或0。當數(shù)據(jù)以這種方式看待時,稱為邏輯性數(shù)據(jù)。264.3.2 Pentium數(shù)據(jù)類型數(shù)據(jù)類型 常規(guī):字節(jié),字(16位),雙字(32位),四字(64位)整數(shù):字節(jié),字,雙字,四字 有符號二進制數(shù) 序數(shù):字節(jié),字,雙字,四字 無符號整數(shù)未壓縮的BCD:范圍0-9的BCD數(shù)字表示,每字節(jié)一個數(shù)字壓縮的BCD:每字節(jié)表示兩個BCD數(shù)字,范圍00-99 近指針:段內(nèi)

16、偏移的32位有效地址位串:一個連續(xù)的位序列字符串:浮點數(shù):單精度 雙精度274.3.3 Power PC數(shù)據(jù)類型數(shù)據(jù)類型 無符號字節(jié): 邏輯和整數(shù)算術(shù)運算,由存儲器取出裝入通用寄存器時,寄存器左端以0填充無符號半字:16位有符號半字:16位算術(shù)運算,由存儲器取出裝入寄存器時,要進行符號位擴展,所有空出位都用符號位填充無符號字:32位邏輯運算,或作為地址指針有符號字:32位算術(shù)運算無符號雙字:64位地址指針字節(jié)串:0-128字節(jié)浮點數(shù):IEEE754單精度 雙精度284.4 指令和數(shù)據(jù)的尋址方式指令和數(shù)據(jù)的尋址方式4.4.1 指令的尋址方式4.4.2 操作數(shù)基本尋址方式4.4.3 尋址方式舉例2

17、94.4.1 指令的尋址方式指令的尋址方式l順序方式lPCl跳躍方式:由本條指令給出下條指令的地址碼,PC的內(nèi)容也必須相應改變,跳躍尋址可以實現(xiàn)程序轉(zhuǎn)移或者構(gòu)成循環(huán)程序CAI304.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l形成操作數(shù)有效地址的方法,稱為尋址方式。l例如,一種單地址指令的結(jié)構(gòu)如下:操作碼OP、變址X、間址I、形式地址A314.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式CAI324.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式1、隱含尋址l指令中隱含著操作數(shù)的地址l如某些運算,隱含了累加器AC作為源和目的寄存器lADD 100H 334.4.2 操作數(shù)基本尋址方式操作數(shù)基本

18、尋址方式2、立即尋址l立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的部分不是通常意義上的操作數(shù)地址,而是操作數(shù)本身,也就是說數(shù)據(jù)就包含在指令中,只要取出指令,就取出了可以立即使用的操作數(shù),節(jié)省了訪問內(nèi)存的時間。因此,這樣的操作數(shù)被稱為立即數(shù)。l指令格式:操作碼OP 操作數(shù)A lADD ax,100H344.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式3、直接尋址l 指令中地址碼字段給出的地址A就是操作數(shù)的有效地址EA(Effective Address),即EAA。354.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式4、間接尋址l 間接尋址意味著指令的地址碼部分給出的地址A不是操作數(shù)的

19、地址,而是存放操作數(shù)地址的主存單元的地址,簡稱操作數(shù)地址的地址。操作數(shù)的有效地址的計算公式為:EA(A),訪問內(nèi)存兩次364.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式5、寄存器尋址l在指令的地址碼部分給出CPU內(nèi)某一通用寄存器的編號,指令的操作數(shù)存放在相應的寄存器中,即EA=Ri 優(yōu)點:(1)由于寄存器在CPU的內(nèi)部,指令在執(zhí)行時從寄存器中取操作數(shù)比訪問主存要快得多;(2)由于寄存器的數(shù)量較少,因此寄存器編號所占位數(shù)也較少,從而可以有效減少指令的地址碼字段的長度。374.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式6、寄存器間接尋址 l為了克服間接尋址中多次訪存的缺點,可采用寄存器間接尋址

20、,即將操作數(shù)放在主存儲器中,而操作數(shù)的地址放在某一通用寄存器中,然后在指令的地址碼部分給出該通用寄存器的編號,這時有EA=(Ri)這種尋址方式的指令較短,并且在取指后只需一次訪存便可得到操作數(shù),因此指令執(zhí)行速度較前述的間接尋址方式要快,也是目前在計算機中使用較為廣泛的一種尋址方式。384.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式7、偏移尋址、偏移尋址l相對尋址:由程序計數(shù)器相對尋址:由程序計數(shù)器PC提供基準地址,而指提供基準地址,而指令的地址碼部分給出相對的位移量令的地址碼部分給出相對的位移量D,兩者相加后,兩者相加后作為操作數(shù)的有效地址,即:作為操作數(shù)的有效地址,即:EA(PC)D。39

21、4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l7、偏移尋址:基址尋址、偏移尋址:基址尋址l將主存空間分成若干段,每段首地址存放在基址寄存器中?;芳拇嫫鞯奈粩?shù)可以設置得很長,從而可以在較大的存儲空間中尋址?;穼ぶ分饕糜跒槌绦蚧驍?shù)據(jù)分配存儲空間,基址寄存器的內(nèi)容通常由操作系統(tǒng)確定,在程序執(zhí)行過程中其值是不變的,指令中的形式地址是可變的404.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l7、偏移尋址:變址尋址、偏移尋址:變址尋址l變址尋址就是將指令的地址碼部分給出的基準地址A與CPU內(nèi)某特定的變址寄存器Rx中的內(nèi)容相加,以形成操作數(shù)的有效地址。EA=A+(R)。變址寄存器的內(nèi)容由用戶設定

22、,程序執(zhí)行中是可變的。l變址的用途是為重復操作的完成提供一種高效機制。例如主存位置A處存放一數(shù)值列表,要給每個元素加1。我們需要取每個數(shù)位,對它加1,然后再存回。需要的有效地址序列是A,A+1,A+2,.直到最后一個位置。此時值A存入指令地址字段,再用一個變址寄存器。每次操作完成后,變址寄存器的內(nèi)容+1. (R)+1-R4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l求N個數(shù)的平均值l直接尋址 lLDA D lADD D+1 lADD D+2 l lADD D+(N-1) lDIV #N lSTA ANS lD ACC lACC+D+1 ACC lACC+D+2 ACC l lACC+D+N

23、-1 ACC lACC N ACC lACC ANS(主存單元) 4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l求N個數(shù)的平均值l變址尋址l LDA #0l LDX #0lM ADD X,Dl INXl CPX #Nl BNE Ml DIV #Nl STA ANSl0 ACCl0 X(變址寄存器)lACC+D+(X) ACClX+1 Xl判斷X-N,結(jié)果為0,Z=1,結(jié)果非0,Z=0. Z是零標志位l當Z=1順序執(zhí)行,Z=0跳轉(zhuǎn)到MlACC N ACC lACC ANS(主存單元)434.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式8、段尋址方式、段尋址方式存儲空間劃分為多段存儲空間劃分為

24、多段給定給定20位的地址空間,在位的地址空間,在尋址一個內(nèi)存單元時,由尋址一個內(nèi)存單元時,由一個基地址再加上某些寄一個基地址再加上某些寄存器提供的存器提供的16位偏移量形位偏移量形成成20位的物理地址?;匚坏奈锢淼刂贰;刂肪褪嵌渭拇嫫鳌V肪褪嵌渭拇嫫?。444.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式9.堆棧尋址以先進后出原理存儲數(shù)據(jù). 棧頂指針SP進棧:PUSH DATA DATA-SP (SP)-1-SP出棧:POP DATA (SP)+1-SP 堆棧尋址舉例堆棧尋址舉例15200HACCSPX棧頂棧頂200H棧底棧底主存主存151FFHACCSP15棧頂棧頂200H棧底棧底主存主存

25、X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX棧頂棧頂200H棧底棧底主存主存151FFH15200HACCSP棧頂棧頂200H棧底棧底主存主存X154.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l例1 某微機的指令格式如下所示:l 15 10 9 8 7 0l 操作碼 X DlD: 位移量 X:尋址特征位 X=00:直接尋址; X=01:用變址寄存器X1進行變址;lX=10:用變址寄存器X2進行變址; lX=11:相對尋址l設(PC)=1234 H,( X1)=0037H,( X2)=1122H(H代表十六進制數(shù)),請確定下列指令中操作

26、數(shù)的有效地l4420H 2244H 1322H 3521H 6723H 4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l解: 1)X=00 , D=20H,有效地址E=20Hl 2) X=10 , D=44H l有效地址E=1122H+44H=1166H l 3) X=11 , D=22H l有效地址E=1234H+22H=1256H l 4) X=01 , D=21H l有效地址E=0037H+21H=0058H l 5)X=11 , D=23H l有效地址 E=1234H+23H=1257H 4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l例2 設相對尋址的轉(zhuǎn)移指令占三個字節(jié),第一個字

27、節(jié)是操作碼,第二,三字節(jié)是相對位移(補碼表示),數(shù)據(jù)在存儲器中采用以低字節(jié)地址為字地址的存放方式。每當CPU從存儲器中取出1個字節(jié)時,(PC)+1-PCl(1)若PC當前值是240(十進制),要求轉(zhuǎn)移到290(十進制),則轉(zhuǎn)移指令的第二,三字節(jié)的機器代碼是多少l(2)若PC當前值是240(十進制),要求轉(zhuǎn)移到200(十進制),則轉(zhuǎn)移指令的第二,三字節(jié)的機器代碼是多少l解:(1)PC當前值是240,取出指令后后PC的值是243,要求轉(zhuǎn)移到290,相對位移是290-243=47,轉(zhuǎn)換成補碼是2FH,數(shù)據(jù)在存儲器中采用以低字節(jié)地址為字地址的存放方式,第二字節(jié)是2FH,第三字節(jié)是00H.l(2) (1

28、)PC當前值是240,取出指令后后PC的值是243,要求轉(zhuǎn)移到200,相對位移是200-243=-43,轉(zhuǎn)換成補碼是D5H, 第二字節(jié)是D5H,第三字節(jié)是FFH.4.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式l例3 一條雙字長直接尋址的子程序調(diào)用指令,第一個字是操作碼和尋址特征,第二個字是地址碼5000H,假設PC當前值是2000H,SP的內(nèi)容是0100H,棧頂內(nèi)容是2746H,存儲器按字節(jié)編址,CALL指令占四個字節(jié),進棧先執(zhí)行(SP)-2-SP,問下列幾種情形下,PC,SP和棧頂內(nèi)容各是多少l(1)CALL指令被讀取前l(fā)(2)CALL指令被調(diào)用后l(3)子程序返回后l解:(1)CALL指

29、令被讀取前,(PC)=2000H,(SP)=0100H,棧頂2746Hl(2)CALL指令被調(diào)用后,程序斷點2004H進棧,棧頂2004H,(SP)=0100H-2=00FEH,(PC)=子程序入口地址5000Hl(3)子程序返回后,程序斷點出棧,(PC)=2004H,(SP)=0100H,棧頂內(nèi)容是2746H指令格式設計指令格式設計l例4某機器字長是16位,存儲器尋址空間是128字,變址時的位移量是-64-+63,16個通用寄存器均可作為變址寄存器,設計一套指令系統(tǒng),滿足下列尋址類型的要求l(1)直接尋址的二地址指令3條l(2)變址尋址的一地址指令6條l(3)寄存器尋址的二地址指令8條l(4

30、)直接尋址的一地址指令12條l(5)零地址指令32條指令格式設計指令格式設計l(1) OP A1 A2 00 01 10l 2 7 7 11作為擴展l(2) OP Rx(寄存器) A 1100011101l 5 4 7 11110和11111擴展l(3) OP Ri Rj 1111000011110111l 8 4 4 1111100011111111擴展l(4) OP A 111110000111111011l 9 7 111111100111111111擴展l(5) OP 1111111000000000 16位 1111111000011111指令格式設計指令格式設計l例5 設某機配 有

31、基址寄存器和變址寄存器,采用1地址格式的指令系統(tǒng),允許直接和間接尋址,指令字長,機器字長,存儲字長都是16位l(1)若采用單字長指令,共能完成105種操作,則指令可直接尋址的范圍是多少?一次間接尋址的范圍是多少?畫出指令格式并說明各字段的含義l(2)若存儲字長不變,可采用什么方法直接訪問容量是16MB的主存?指令格式設計指令格式設計l解:(1)完成105種操作,操作碼取7位,因允許直接,間接尋址,且有基址寄存器和變址寄存器.尋址特征位M 2位 形式地址AD16-7-2=7位lOP(7) M(2) AD(7)l直接尋址128,一次間接尋址216=65536 l容量是16MB存儲器正好與存儲字長是

32、16位的8M存儲器容量相等,采用雙字長指令,操作碼和尋址特征位不變lOP(7) M(2) AD1(7)l AD2(16) l形式地址23位 223=8M指令格式設計指令格式設計l例6某模型機共有64種操作,操作碼位數(shù)固定,具有以下特點:l(1)采用1地址或者2地址格式l(2)有寄存器尋址,直接尋址,相對尋址(相對位移-128+127)三種尋址方式l(3)有16個通用寄存器,算術(shù)運算和邏輯運算的操作數(shù)都在寄存器中,結(jié)果也在寄存器中l(wèi)(4)取數(shù),存數(shù)指令在通用寄存器和存儲器之間傳送數(shù)據(jù)l(5)存儲器容量是1MB,按字節(jié)編址。l要求設計算術(shù)邏輯指令,取數(shù),存數(shù)指令和相對轉(zhuǎn)移指令指令格式設計指令格式設

33、計l(1)算術(shù)邏輯指令為寄存器-寄存器型,單字長lOP (6) M(2) Ri(4) Rj(4)l(2)取數(shù)存數(shù)指令是寄存器-存儲器型,雙字長lOP(6) M(2) Ri(4) A1(4)l A2(16)lA1和A共20位,可直接訪問按存儲器編址的1MB存儲器l(3)相對轉(zhuǎn)移指令是一地址 單字長lOP(6) M(2) A(8) lA是位移量564.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式例例4.4:將:將ARM匯編語言翻譯成機器語言。已知匯編語言翻譯成機器語言。已知5條條ARM指令格指令格式譯碼如下表所示:式譯碼如下表所示:設設r3寄存器中保存數(shù)組寄存器中保存數(shù)組A的基值,的基值,h放在寄

34、存器放在寄存器r2中。中。C語言程序語言程序語句語句 A30=h+A30 可編譯成如下可編譯成如下3條匯編語句指令:條匯編語句指令:LDR r5 , r3, #120;寄存器寄存器r5中獲得中獲得A30ADD r5 , r2 , r5 ,;寄存器寄存器r5中獲得中獲得h+A30STR r5 , r3, #120;將將h+A30存入到存入到A30請問這請問這3條匯編語言指令的機器語言是什么?條匯編語言指令的機器語言是什么?574.4.2 操作數(shù)基本尋址方式操作數(shù)基本尋址方式解:首先利用十進制數(shù)來表示機器語言指令,然后轉(zhuǎn)換成二進制機器指令。解:首先利用十進制數(shù)來表示機器語言指令,然后轉(zhuǎn)換成二進制機

35、器指令。從表從表4.3中我們可以確定中我們可以確定3條機器語言指令:條機器語言指令:LDR指令在第指令在第3字段(字段(opcond)用操作碼)用操作碼24確定。基值寄存器確定?;导拇嫫?指定在指定在第第4字段(字段(Rn),目的寄存器),目的寄存器5指定在第指定在第6字段(字段(Rd),選擇),選擇A30(120304)的)的offset字段放在最后一個字段(字段放在最后一個字段(offset12)。)。ADD指令在第指令在第4字段(字段(opcode)用操作碼)用操作碼4確定。確定。3個寄存器操作(個寄存器操作(2、5和和5)分別被指定在第)分別被指定在第6、7、8字段。字段。STR指令

36、在第指令在第3字段用操作碼字段用操作碼25確定,其余部分與確定,其余部分與LDR指令相同。指令相同。584.4.3 尋址方式舉例尋址方式舉例Pentium的尋址方式的尋址方式CAI594.4.3 尋址方式舉例尋址方式舉例方式算法立即作數(shù)=A寄存器LA=R偏移量LA=(SR)+A基址LA=(SR)+(B)基址帶偏移量LA=(SR)+(B)+A比例變址帶偏移量LA=(SR)+(I)S+A基址帶變址和偏移量LA=(SR)+(B)+(I)+A基址帶比例變址和偏移量 LA=(SR)+(B)+(I)S+A相對LA=(PC)+APentium的尋址方式的尋址方式604.4.3 尋址方式舉例尋址方式舉例例4

37、一種二地址RS型指令的結(jié)構(gòu)如下:6位 4位 1位 2位 16位 OP 通用寄存器 I X 偏移量D其中I為間接尋址標志位,X為尋址模式字段,D為偏移量字段。通過I,X,D的組合,可構(gòu)成如下尋址方式:請寫出6種尋址方式的名稱。614.4.3 尋址方式舉例尋址方式舉例例5 將ARM匯編語言翻譯成機器語言。已知5條ARM指令格式譯碼如下表所示:設r3寄存器中保存數(shù)組A的基址,h放在寄存器r2中。C語言程序語句A30=h+A30 可編譯成如下3條匯編語言指令:LDR r5,r3,#120;寄存器r5中獲得A30ADD r5,r2,r5;寄存器r5中獲得h+A30STR r5,r3,#120;將h+A3

38、0存入到A30請問這3條匯編語言指令的機器語言是什么?624.5 典型指令典型指令 4.5.1 指令的分類指令的分類4.5.2 基本指令系統(tǒng)的操作基本指令系統(tǒng)的操作4.5.3 精簡指令系統(tǒng)精簡指令系統(tǒng)634.5.1 指令的分類指令的分類l數(shù)據(jù)傳送類指令l一般傳送指令: MOV AX,BXl數(shù)據(jù)交換指令: XCHGl堆棧操作指令: PUSH,POPl運算類指令l算術(shù)運算指令: 加、減、乘、除以及加1、減1、比較l邏輯運算指令: l移位指令 l程序控制類指令 l程序控制類指令用于控制程序的執(zhí)行方向,并使程序具有測試、分析與判斷的能力。l 輸入和輸出指令、字符串處理指令、特權(quán)指令、其他指令644.5.2 基本指令系統(tǒng)的操作基本指令系統(tǒng)的操作l20%和80%規(guī)律:CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。lVLSI技術(shù)發(fā)展引起的問題lVLSI工藝要求規(guī)整性,而大量復雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難。l現(xiàn)在用微程序?qū)崿F(xiàn)復雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。lCISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復雜程度。然而指令復

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論