第四章指令系統(tǒng)1_第1頁
第四章指令系統(tǒng)1_第2頁
第四章指令系統(tǒng)1_第3頁
第四章指令系統(tǒng)1_第4頁
第四章指令系統(tǒng)1_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章指令系統(tǒng)

4.1指令系統(tǒng)的發(fā)展與性能要求微指令:微程序級的命令,它屬于硬件;宏指令:由若干條機器指令組成的軟件指令,它屬于軟件;機器指令(指令):介于微指令與宏指令之間,每條指令可完成一個獨立的算術(shù)運算或邏輯運算。宏指令宏指令與子程序的異同宏指令與子程序共同的優(yōu)點是:簡化源程序代碼。二者有以下區(qū)別:子程序調(diào)用是在程序運行過程中進行,而宏調(diào)用是在匯編過程中完成,所以采用子程序方式程序的進行要花費額外的開銷,而宏指令方式不用。在源程序中,n次宏調(diào)用就要生成n個代碼段,而子程序只生成一個代碼段,所以采用宏指令方式需要較大的內(nèi)存空間。宏指令宏指令——由用戶自己定義的一些頻繁出現(xiàn)的程序段從某種意義上講,它與子程序有相似之處又具有明顯的區(qū)別,主要表現(xiàn)在以下幾個方面:①宏調(diào)用語句由宏匯編語言程序來識別和處理;而子程序是由CPU來執(zhí)行。②宏指令程序段匯編成的機器代碼每調(diào)用宏指令一次,就要插入一次,而子程序的機器代碼是只需要一份,因此宏調(diào)用并不能縮短目標(biāo)代碼的長度。③宏調(diào)用無需像子程序那樣需要保留程序的斷點和現(xiàn)場,有較快的執(zhí)行速度。④宏調(diào)用時允許修改參數(shù),即同一宏指令在不同調(diào)用時可完成不同操作;而子程序各次調(diào)用只能完成完全相同的功能。*宏指令適用于要求多次執(zhí)行較短程序段,或希望在調(diào)用中能修改某些參數(shù)的情況;宏指令4.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng):一臺計算機中所有機器指令的集合,它是表征一臺計算機性能的重要因素,其格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),也直接影響到系統(tǒng)軟件,影響到機器的適用范圍。4.1.1指令系統(tǒng)的發(fā)展50年代:指令系統(tǒng)只有定點加減、邏輯運算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至幾十條指令。60年代后期:增加了乘除運算、浮點運算、十進制運算、字符串處理等指令,指令數(shù)目多達一二百條,尋址方式也趨多樣化。70年代末期:大多數(shù)計算機的指令系統(tǒng)多達幾百條。我們稱這些計算機為復(fù)雜指令系統(tǒng)計算機(CISC)。但是如此龐大的指令系統(tǒng)難以保證正確性,不易調(diào)試維護,造成硬件資源浪費。為此人們又提出了便于VLSI技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機(RISC)。

4.1.2對指令系統(tǒng)性能的要求完備性用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。一臺計算機中最基本、必不可少的指令是不多的。許多指令可用最基本的指令編程來實現(xiàn)。例如,乘除運算指令、浮點運算指令可直接用硬件來實現(xiàn),也可用基本指令編寫的程序來實現(xiàn)。采用硬件指令的目的是提高程序執(zhí)行速度,便于用戶編寫程序。

4.1.2對指令系統(tǒng)性能的要求有效性利用該指令系統(tǒng)所編寫的程序能夠高效率的運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。一般來說,一個功能更強、更完善的指令系統(tǒng),必定有更好的有效性。對某些復(fù)雜,低速的指令設(shè)置要反復(fù)比較是用軟件(子程序)來實現(xiàn),還是硬件提供必要的支持。4.1.2對指令系統(tǒng)性能的要求規(guī)整性規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。對稱性指在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型;指令格式和數(shù)據(jù)格式的一致性是指指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。正交性:指令中各個不同含義字段之間,在編碼時應(yīng)互相獨立,互不相關(guān)。例,地址的計算與操作碼無關(guān)。4.1.2對指令系統(tǒng)性能的要求兼容性系列機各機種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機種上基本軟件可以通用。但由于不同機種推出的時間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。以前的指令集只能是當(dāng)前指令集的子集。4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系高級語言:如C,F(xiàn)ORTRAN等,其語句和用法與具體機器的指令系統(tǒng)無關(guān)。低級語言:分機器語言(二進制語言)和匯編語言(符號語言),這兩種語言都是面向機器的語言,和具體機器的指令系統(tǒng)密切相關(guān)。機器語言用指令代碼編寫程序,而符號語言用指令助記符來編寫程序。4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系表4.1高級語言與低級語言的性能比較比較內(nèi)容高級語言低級語言1對程序員的訓(xùn)練要求(1)通用算法(2)語言規(guī)則(3)硬件知識有較少不要有較多要2對機器獨立的程度獨立不獨立3編制程序的難易程度易難4編制程序所需時間短較長5程序執(zhí)行時間較長短6編譯過程中對計算機資源的要求多少匯編語言依賴于計算機的硬件結(jié)構(gòu)和指令系統(tǒng)。不同的機器有不同的指令,所以用匯編語言編寫的程序不能在其他類型的機器上運行。第四章指令系統(tǒng)

4.2指令格式4.2指令格式操作碼字段地址碼字段4.2.1操作碼(OP)指令系統(tǒng)的每一條指令都有一個操作碼,它表示該指令應(yīng)進行什么性質(zhì)的操作。不同的指令用操作碼字段的不同編碼來表示,每一種編碼代表一種指令。4.2.1操作碼對于一個機器的指令系統(tǒng),在指令字中操作碼字段和地址碼字段長度通常是固定的。在單片機中,由于指令字較短,為了充分利用指令字長度,指令字的操作碼字段和地址碼字段是不固定的,即不同類型的指令有不同的劃分,以便盡可能用較短的指令字長來表示越來越多的操作種類,并在越來越大的存儲空間中尋址。固定長度編碼的主要缺點是:信息的冗余極大,使程序的總長度增加。

4.2.1操作碼

地址碼字段

操作碼字段操作碼字段地址碼字段指令譯碼器緩沖寄存器高三位譯碼器111××4.2.1操作碼

地址碼字段

操作碼字段操作碼字段地址碼字段緩沖寄存器高三位譯碼器×××指令譯碼器4.2.2地址碼根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。操作碼A1A2A3操作碼A1A2操作碼A1操作碼二地址指令二地址指令格式中,從操作數(shù)的物理位置來說,又可歸結(jié)為三種類型。存儲器-存儲器(SS)型指令:操作時都是涉及內(nèi)存單元,參與操作的數(shù)都放在內(nèi)存里,從內(nèi)存某單元中取操作數(shù),操作結(jié)果存放至內(nèi)存另一單元中,因此機器執(zhí)行這種指令需要多次訪問內(nèi)存。寄存器-寄存器(RR)型指令:需要多個通用寄存器或個別專用寄存器,從寄存器中取操作數(shù),把操作結(jié)果放到另一寄存器。機器執(zhí)行寄存器-寄存器型指令的速度很快,因為執(zhí)行這類指令,不需要訪問內(nèi)存。寄存器-存儲器(RS)型指令:執(zhí)行此類指令時,既要訪問內(nèi)存單元,又要訪問寄存器。4.2.3指令字長度指令字長度:一個指令字中包含二進制代碼的位數(shù)(字節(jié)或字的整倍數(shù))。機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù),它決定了計算機的運算精度。4.2.3指令字長度使用多字長指令,目的在于提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題。其主要缺點是必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運算速度,又占用了更多的存儲空間。4.2.3指令字長度等長指令字結(jié)構(gòu):各種指令字長度是相等的。這種指令字結(jié)構(gòu)簡單,且指令字長度是不變的。變長指令字結(jié)構(gòu):各種指令字長度隨指令功能而異。結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復(fù)雜。4.2.4指令助記符為了便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符。典型指令指令助記符二進制操作碼加法

ADD

001減法

SUB

010傳送

MOV

011跳轉(zhuǎn)

JMP

100轉(zhuǎn)子

JSR

101存儲

STR

110讀數(shù)

LDA

111

指令設(shè)計舉例間接尋址標(biāo)志為0時表示地址碼為操作數(shù)地址,為1時表示地址碼為操作數(shù)地址的地址;操作碼的設(shè)計:000將存儲器中的數(shù)據(jù)讀到寄存器A;001將寄存器A中的數(shù)據(jù)寫入存儲器;010將存儲器中的數(shù)據(jù)與寄存器A中的數(shù)據(jù)相加,結(jié)果送到寄存器A;011將寄存器A清零;100轉(zhuǎn)移;101停機。110和111待指令擴展。操作碼3位間接尋址標(biāo)志1位地址碼12位3112指令設(shè)計舉例I表示間接尋址;操作碼的設(shè)計:000(LDA)將存儲器中的數(shù)據(jù)讀到寄存器A;001(STA)將寄存器A中的數(shù)據(jù)寫入存儲器;010(ADD)將存儲器中的數(shù)據(jù)與寄存器A中的數(shù)據(jù)相加,結(jié)果送到寄存器A;011(CLA)將寄存器A清零;100(JMP)轉(zhuǎn)移;101(HLT)停機。110和111待指令擴展。4.2.5指令格式舉例1.八位微型計算機的指令格式

操作碼單字長指令

操作碼操作數(shù)地址雙字長指令

操作碼操作數(shù)地址1操作數(shù)地址2

三字長指令4.2.5指令格式舉例2.

PDP/11系列機指令格式字長16位;單字長指令;操作碼字段不固定。4.2.5指令格式舉例3.pentium指令格式pentium機的指令字長度是可變的:從1字節(jié)到12字節(jié),還可以帶前綴。這種非固定長度的指令格式是典型的CICS結(jié)構(gòu)特征。一是為了與它的前身80486保持兼容,二是希望能給編譯程序?qū)懽髡咭愿囔`活的編程支持。指令的前綴是可選項,其作用是對其后的指令本身進行顯示約定。每個前綴占1個字節(jié)。4.2.5指令格式舉例3.pentium指令格式0或1

0或1

0或1

0或1(字節(jié)數(shù))指令前綴段取代操作數(shù)長度取代地址長度取代

1或2

0或1

0或1

0,1,2,4

0,1,2,4(字節(jié)數(shù))操作碼Mod

Reg或操作碼

R/M比例S

變址I

基址B位移量立即數(shù)

2位3位3位2位3位3位4.2.5指令格式舉例指令與前綴的區(qū)分前綴各部分間的區(qū)分4.3操作數(shù)類型一般的數(shù)據(jù)類型

Pentium數(shù)據(jù)類型

PowerPC數(shù)據(jù)類型

4.3.1一般的數(shù)據(jù)類型地址數(shù)據(jù):地址實際上也是一種形式的數(shù)據(jù)。數(shù)值數(shù)據(jù):計算機中普遍使用的三種類型的數(shù)值數(shù)據(jù)(定點、浮點、壓縮十進制)。字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。邏輯數(shù)據(jù):一個單元中有幾位二進制bit項組成,每個bit的值可以是1或0。當(dāng)數(shù)據(jù)以這種方式看待時,稱為邏輯性數(shù)據(jù)。4.3.2Pentium數(shù)據(jù)類型常規(guī)整數(shù)序數(shù)未壓縮的BCD壓縮的BCD近指針位串字符串浮點數(shù)

4.3.3PowerPC數(shù)據(jù)類型無符號字節(jié)無符號半字有符號半字無符號字有符號字無符號雙字字節(jié)串浮點數(shù)

4.4指令和數(shù)據(jù)的尋址方式在存儲器中,操作數(shù)或指令字寫入或讀出的方式,有地址指定方式、相聯(lián)存儲方式和堆棧存取方式。當(dāng)采用地址指定方式時,形成操作數(shù)或指令地址的方式,稱為尋址方式。尋址方式分為兩類:指令尋址方式數(shù)據(jù)尋址方式4.4.1指令的尋址方式1.順序?qū)ぶ贩绞?.跳躍尋址方式4.4.1指令的尋址方式4.4.2操作數(shù)尋址方式形成操作數(shù)有效地址的方法,稱為尋址方式。

指令中操作數(shù)字段的地址碼是由形式地址和尋址方式特征位等組合形成,因此,一般來說,指令中所給出的地址碼,并不是操作數(shù)的有效地址。因此,尋址過程就是把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。4.4.2操作數(shù)尋址方式如8086匯編中的STC指令,設(shè)置標(biāo)志寄存器的C為14.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式4.4.2操作數(shù)尋址方式相對尋址方式相對尋址是把程序計數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成操作數(shù)的有效地址。程序計數(shù)器的內(nèi)容就是當(dāng)前指令的地址?!跋鄬Α睂ぶ罚褪窍鄬τ诋?dāng)前的指令地址而言。

采用相對尋址方式的好處是程序員無須用指令的絕對地址編程,所編程序可以放在內(nèi)存任何地方。此時形式地址D通常稱為偏移量,其值可正可負(fù),相對于當(dāng)前指令地址進行浮動。相對尋址方式基址尋址方式基址尋址方式是將CPU中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地址。

它的優(yōu)點是可以擴大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址?;穼ぶ贩绞阶冎穼ぶ贩绞阶冎穼ぶ贩绞脚c基址尋址方式計算有效地址的方法很相似,它把CPU中某個變址寄存器的內(nèi)容與偏移量D相加來形成操作數(shù)有效地址。但使用變址尋址方式的目的不在于擴大尋址空間,而在于實現(xiàn)程序塊的規(guī)律性變化。變址尋址方式相對、基址、變址尋址方式的比較寄存器與形式地址相加得到有效地址(PC被稱為指令指針寄存器)相對、基址、變址尋址方式的比較PC不能夠通過程序賦值相對尋址的相加是一種對位相加PC形式地址D有效地址相對、基址、變址尋址方式的比較基址寄存器與變址寄存器都是可以通過程序賦值的?;穼ぶ分械男问降刂芬灿蟹Q作偏移量的。變址寄存器通常設(shè)有多個。這兩種尋址方式的相加均為不對位相加。相對、基址、變址尋址方式的比較基址、變址寄存器形式地址D有效地址相對、基址、變址尋址方式的比較變址尋址的另一種方案變址寄存器形式地址D有效地址塊尋址方式如果數(shù)據(jù)塊是變長的,可用三種方法指出它的長度:指令中劃出字段指出長度;指令格式中指出數(shù)據(jù)塊的首地址與末地址;由塊結(jié)束字符指出數(shù)據(jù)塊長度。段尋址方式段尋址方式的實質(zhì)還是基址尋址。堆棧尋址方式分寄存器堆棧、存儲器堆棧以先進后出原理存儲數(shù)據(jù)堆棧尋址方式堆棧是一組能存儲和取出數(shù)據(jù)的暫時存儲單元。很多計算機把存儲器的一部分用作堆棧。堆棧和其他形式的存儲器之間的差別就在于,它們對數(shù)據(jù)的存取方法或?qū)ぶ贩椒ㄓ兴煌6褩ぶ贩绞蕉褩J且环N數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)的一種組織方式。棧是一種只能在叫做棧頂?shù)囊欢诉M行進棧和出棧操作的線性數(shù)據(jù)結(jié)構(gòu)。棧的主要特點是“后進先出”

溫馨提示

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

最新文檔

評論

0/150

提交評論