版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求4.2指令格式4.3操作數(shù)類型4.4指令和數(shù)據(jù)的尋址方式4.5典型指令4.6ARM匯編語言返回1第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求返回124.1指令系統(tǒng)的發(fā)展與性能要求4.1.1指令系統(tǒng)的發(fā)展4.1.2對指令系統(tǒng)性能的要求4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系
24.1指令系統(tǒng)的發(fā)展與性能要求4.1.1指令系統(tǒng)的發(fā)展234.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng)基本概念指令:就是要計算機執(zhí)行某種操作的命令。從計算機組成的層次結(jié)構(gòu)來說,計算機的指令有微指令、機器指令和宏指令之分。微指令是微程序級的命令,它屬于硬件;宏指令:由若干條機器指令組成的軟件指令,它屬于軟件;機器指令:介于微指令與宏指令之間,通常簡稱為指令,每一條指令可完成一個獨立的算術(shù)運算或邏輯運算操作。本章所討論的指令,是機器指令。一臺計算機中所有機器指令的集合,稱為這臺計算機的指令系統(tǒng)。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍34.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng)基本概念344.1.1指令系統(tǒng)的發(fā)展發(fā)展情況復(fù)雜指令系統(tǒng)計算機,簡稱CISC。指令系統(tǒng)多達二三百條。CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。VLSI技術(shù)發(fā)展引起的問題VLSI工藝要求規(guī)整性,而大量復(fù)雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難?,F(xiàn)在用微程序?qū)崿F(xiàn)復(fù)雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。CISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復(fù)雜程度。然而指令復(fù)雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結(jié)構(gòu)設(shè)計中,軟硬件的功能分配必須恰當(dāng),但是如此龐大的指令系統(tǒng)不但使計算機的研制周期變長,難以保證正確性,不易調(diào)試維護,而且由于采用了大量使用頻率很低的復(fù)雜指令而造成硬件資源浪費。精簡指令系統(tǒng)計算機:簡稱RISC,人們又提出了便于VLSI技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機。(1)選取使用頻率高的簡單指令,指令條數(shù)少。(2)指令條數(shù)固定,指令格式種類少,尋址方式種類少。(3)只有取數(shù)、存數(shù)指令訪問存儲器,其他指令的操作都在寄存器之間進行。44.1.1指令系統(tǒng)的發(fā)展發(fā)展情況454.1.2對指令系統(tǒng)性能的要求完備性:完備性是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。一臺計算機中最基本、必不可少的指令是不多的。許多指令可用最基本的指令編程來實現(xiàn)。例如,乘除運算指令、浮點運算指令可直接用硬件來實現(xiàn),也可用基本指令編寫的程序來實現(xiàn)。采用硬件指令的目的是提高程序執(zhí)行速度,便于用戶編寫程序。有效性:有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。一般來說,一個功能更強、更完善的指令系統(tǒng),必定有更好的有效性。規(guī)整性:規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。對稱性是指:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運算指令可支持字節(jié)、字、雙字整數(shù)的運算,十進制數(shù)運算和單、雙精度浮點數(shù)運算等;指令格式和數(shù)據(jù)格式的一致性是指:指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。例如指令長度和數(shù)據(jù)長度通常是字節(jié)長度的整數(shù)倍。兼容性:系列機各機種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機種上基本軟件可以通用。但由于不同機種推出的時間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。54.1.2對指令系統(tǒng)性能的要求完備性:完備性是指用匯編語564.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與高級語言關(guān)系
比較內(nèi)容高級語言低級語言
1對程序員的訓(xùn)練要求(1)通用算法(2)語言規(guī)則(3)硬件知識
有較少不要
有較多要
2對機器獨立的程度獨立不獨立
3編制程序的難易程度易難
4編制程序所需時間短較長
5程序執(zhí)行時間較長短
6編譯過程中對計算機資源的要求多少64.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與高級語言關(guān)系674.2指令格式4.2.1操作碼4.2.2地址碼4.2.3指令字長度4.2.4指令助記符4.2.5指令格式舉例指令格式包括兩個方面:操作碼字段地址碼字段74.2指令格式4.2.1操作碼操作碼字段地址碼字段784.2.1操作碼設(shè)計計算機時,對指令系統(tǒng)的每一條指令都要規(guī)定一個操作碼。指令的操作碼OP表示該指令應(yīng)進行什么性質(zhì)的操作,如進行加法、減法、乘法、除法、取數(shù)、存數(shù)等等。不同的指令用操作碼字段的不同編碼來表示,每一種編碼代表一種指令。組成操作碼字段的位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模。較大的指令系統(tǒng)就需要更多的位數(shù)來表示每條特定的指令。等長(指令規(guī)整,譯碼簡單)例如IBM370機,該機字長32位,16個通用寄存器R0~R15,共有183條指令;指令的長度可以分為16位、32位和48位等幾種,所有指令的操作碼都是8位固定長度。固定長度編碼的主要缺點是:信息的冗余極大,使程序的總長度增加。84.2.1操作碼設(shè)計計算機時,對指令系統(tǒng)的每一條指令都要894.2.2地址碼根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。三地址指令二地址指令單地址指令零地址指令操作碼(4位)A1(6位)操作碼(4位)A1(6位)A2(6位)操作碼(4位)A1(6位)A2(6位)操作碼A3(6位)94.2.2地址碼根據(jù)一條指令中有幾個操作數(shù)地址,可將該指9104.2.2地址碼三地址指令指令格式如下:OPA1A2A3操作碼op
第一操作數(shù)A1
第二操作數(shù)A2
結(jié)果A3功能描述:(A1)op(A2)→A3(PC)+1→PC這種格式雖然省去了一個地址,但指令長度仍比較長,所以只在字長較長的大、中型機中使用,而小型、微型機中很少使用。104.2.2地址碼三地址指令10114.2.2地址碼二地址指令其格式如下:OPA1A2操作碼op第一操作數(shù)A1第二操作數(shù)A2
功能描述:(A1)op(A2)→A1(PC)+1→PC二地址指令在計算機中得到了廣泛的應(yīng)用,但是在使用時有一點必須注意:指令執(zhí)行之后,A1中原存的內(nèi)容已經(jīng)被新的運算結(jié)果替換了。114.2.2地址碼二地址指令11124.2.2地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:SS存儲器-存儲器類型RS寄存器-存儲器類型RR寄存器-寄存器類型 慢124.2.2地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:慢12134.2.2地址碼一地址指令指令格式為:OPA1操作碼op
第一操作數(shù)A1功能描述:(AC)op(A1)→A1(PC)+1→PC單操作數(shù)運算指令,如“+1”、“-1”、“求反”指令中給出一個源操作數(shù)的地址134.2.2地址碼一地址指令13144.2.2地址碼零地址指令
其格式為:OP操作碼op“停機”、“空操作”、“清除”等控制類指令。144.2.2地址碼零地址指令
14154.2.3指令字長度概念指令字長度(一個指令字包含二進制代碼的位數(shù))機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。單字長指令半字長指令雙字長指令多字長指令的優(yōu)缺點優(yōu)點提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題;缺點必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運算速度,又占用了更多的存儲空間。指令系統(tǒng)中指令采用等長指令的優(yōu)點:各種指令字長度是相等的,指令字結(jié)構(gòu)簡單,且指令字長度是不變的;采用非等長指令的的優(yōu)點:各種指令字長度隨指令功能而異,結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復(fù)雜。154.2.3指令字長度概念15164.2.4指令助記符由于硬件只能識別1和0,所以采用二進制操作碼是必要的,但是我們用二進制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符用3~4個英文字母來表示操作碼,一般為英文縮寫不同的計算機系統(tǒng),規(guī)定不一樣必須用匯編語言翻譯成二進制代碼164.2.4指令助記符由于硬件只能識別1和0,所以采用二164.2.4指令助記符典型指令助記符加法ADD001減法SUB010傳送MOV011跳轉(zhuǎn)JMP100轉(zhuǎn)子程序JSR101存數(shù)STO110取數(shù)LAD1114.2.4指令助記符典型指令助記符17184.2.5指令格式舉例8位微型計算機的指令格式如8088,字長8位,指令結(jié)構(gòu)可變包括單字長指令、雙字長指令和三字長指令操作碼長度固定184.2.5指令格式舉例8位微型計算機的指令格式18194.2.5指令格式舉例MIPSR400020世紀(jì)80年代后期RISC計算機系統(tǒng),32位字長,32個通用寄存器。
R型(寄存器)指令:算術(shù)運算數(shù)據(jù)放在通用寄存器中
6位5位5位5位5位6位
oprsrtrdshamtfunct
I型(立即數(shù))指令:取數(shù)、存數(shù)指令訪問存儲器
6位5位5位16位
op
rs
rt
常數(shù)或地址194.2.5指令格式舉例MIPSR400020世紀(jì)819204.2.5指令格式舉例:ARM指令格式204.2.5指令格式舉例:ARM指令格式20214.2.5指令格式舉例[例1]分析下列指令格式的特點1597430OP----源寄存器目標(biāo)寄存器解:1.單字長二地址指令2.操作碼字段可以指定128條指令3.源寄存器和目標(biāo)寄存器都是通用寄存器,兩個操作都在寄存器中,RR型指令4.常用于算術(shù)邏輯運算214.2.5指令格式舉例[例1]分析下列指令格式的特點21224.2.5指令格式舉例[例2]分析下列指令格式的特點15107430OP----源寄存器變址寄存器位移量(16位)解:1.雙字長二地址指令,訪問存儲器2.操作碼字段可以指定64條指令3.一個操作數(shù)在源寄存器中,另一個在存儲器中(由變址寄存器和位移量決定),RS型指令224.2.5指令格式舉例[例2]分析下列指令格式的特點22234.2.5指令格式舉例[例3]MIPSR4000匯編語言中,寄存器$s0~$s7對應(yīng)寄存器號為十進制16~23,寄存器$t0~$t7對應(yīng)的寄存器號為8~15。請將下表4條匯編語言翻譯成對應(yīng)的機器語言十進制數(shù)表示。
234.2.5指令格式舉例[例3]MIPSR4000匯23244.3操作數(shù)類型4.3.1一般的數(shù)據(jù)類型4.3.2Pentium數(shù)據(jù)類型4.3.3PowerPC數(shù)據(jù)類型
244.3操作數(shù)類型4.3.1一般的數(shù)據(jù)類型24254.3.1一般的數(shù)據(jù)類型地址數(shù)據(jù):無符號整數(shù)。數(shù)值數(shù)據(jù):計算機中普遍使用的三種類型的數(shù)值數(shù)據(jù)1.定點整數(shù),小數(shù)2.浮點數(shù)3.壓縮十進制數(shù)。字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。邏輯數(shù)據(jù):一個單元中有幾位二進制bit項組成,每個bit的值可以是1或0。當(dāng)數(shù)據(jù)以這種方式看待時,稱為邏輯性數(shù)據(jù)。254.3.1一般的數(shù)據(jù)類型地址數(shù)據(jù):無符號整數(shù)。25264.3.2Pentium數(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)偏移的32位有效地址
位串:一個連續(xù)的位序列
字符串:
浮點數(shù):單精度雙精度264.3.2Pentium數(shù)據(jù)類型常規(guī):字節(jié),字26274.3.3PowerPC數(shù)據(jù)類型無符號字節(jié):邏輯和整數(shù)算術(shù)運算,由存儲器取出裝入通用寄存器時,寄存器左端以0填充
無符號半字:16位
有符號半字:16位算術(shù)運算,由存儲器取出裝入寄存器時,要進行符號位擴展,所有空出位都用符號位填充
無符號字:32位邏輯運算,或作為地址指針
有符號字:32位算術(shù)運算
無符號雙字:64位地址指針
字節(jié)串:0-128字節(jié)
浮點數(shù):IEEE754單精度雙精度
274.3.3PowerPC數(shù)據(jù)類型無符號字節(jié)27284.4指令和數(shù)據(jù)的尋址方式4.4.1指令的尋址方式4.4.2操作數(shù)基本尋址方式4.4.3尋址方式舉例
284.4指令和數(shù)據(jù)的尋址方式4.4.1指令的尋址方式28294.4.1指令的尋址方式順序方式PC跳躍方式:由本條指令給出下條指令的地址碼,PC的內(nèi)容也必須相應(yīng)改變,跳躍尋址可以實現(xiàn)程序轉(zhuǎn)移或者構(gòu)成循環(huán)程序CAI294.4.1指令的尋址方式順序方式CAI29304.4.2操作數(shù)基本尋址方式形成操作數(shù)有效地址的方法,稱為尋址方式。例如,一種單地址指令的結(jié)構(gòu)如下:
操作碼OP、變址X、間址I、形式地址A304.4.2操作數(shù)基本尋址方式形成操作數(shù)有效地址的方法,30314.4.2操作數(shù)基本尋址方式CAI314.4.2操作數(shù)基本尋址方式CAI31324.4.2操作數(shù)基本尋址方式1、隱含尋址指令中隱含著操作數(shù)的地址如某些運算,隱含了累加器AC作為源和目的寄存器ADD100H324.4.2操作數(shù)基本尋址方式1、隱含尋址32334.4.2操作數(shù)基本尋址方式2、立即尋址立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的部分不是通常意義上的操作數(shù)地址,而是操作數(shù)本身,也就是說數(shù)據(jù)就包含在指令中,只要取出指令,就取出了可以立即使用的操作數(shù),節(jié)省了訪問內(nèi)存的時間。因此,這樣的操作數(shù)被稱為立即數(shù)。指令格式:操作碼OP
操作數(shù)AADDax,100H334.4.2操作數(shù)基本尋址方式2、立即尋址33344.4.2操作數(shù)基本尋址方式3、直接尋址
指令中地址碼字段給出的地址A就是操作數(shù)的有效地址EA(EffectiveAddress),即EA=A。344.4.2操作數(shù)基本尋址方式3、直接尋址34354.4.2操作數(shù)基本尋址方式4、間接尋址
間接尋址意味著指令的地址碼部分給出的地址A不是操作數(shù)的地址,而是存放操作數(shù)地址的主存單元的地址,簡稱操作數(shù)地址的地址。操作數(shù)的有效地址的計算公式為:EA=(A),訪問內(nèi)存兩次354.4.2操作數(shù)基本尋址方式4、間接尋址35364.4.2操作數(shù)基本尋址方式5、寄存器尋址在指令的地址碼部分給出CPU內(nèi)某一通用寄存器的編號,指令的操作數(shù)存放在相應(yīng)的寄存器中,即EA=Ri優(yōu)點:(1)由于寄存器在CPU的內(nèi)部,指令在執(zhí)行時從寄存器中取操作數(shù)比訪問主存要快得多;(2)由于寄存器的數(shù)量較少,因此寄存器編號所占位數(shù)也較少,從而可以有效減少指令的地址碼字段的長度。364.4.2操作數(shù)基本尋址方式5、寄存器尋址優(yōu)點:36374.4.2操作數(shù)基本尋址方式6、寄存器間接尋址
為了克服間接尋址中多次訪存的缺點,可采用寄存器間接尋址,即將操作數(shù)放在主存儲器中,而操作數(shù)的地址放在某一通用寄存器中,然后在指令的地址碼部分給出該通用寄存器的編號,這時有EA=(Ri)這種尋址方式的指令較短,并且在取指后只需一次訪存便可得到操作數(shù),因此指令執(zhí)行速度較前述的間接尋址方式要快,也是目前在計算機中使用較為廣泛的一種尋址方式。374.4.2操作數(shù)基本尋址方式6、寄存器間接尋址
這種尋37384.4.2操作數(shù)基本尋址方式7、偏移尋址相對尋址:由程序計數(shù)器PC提供基準(zhǔn)地址,而指令的地址碼部分給出相對的位移量D,兩者相加后作為操作數(shù)的有效地址,即:EA=(PC)+D。384.4.2操作數(shù)基本尋址方式7、偏移尋址38394.4.2操作數(shù)基本尋址方式7、偏移尋址:基址尋址將主存空間分成若干段,每段首地址存放在基址寄存器中?;芳拇嫫鞯奈粩?shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址?;穼ぶ分饕糜跒槌绦蚧驍?shù)據(jù)分配存儲空間,基址寄存器的內(nèi)容通常由操作系統(tǒng)確定,在程序執(zhí)行過程中其值是不變的,指令中的形式地址是可變的394.4.2操作數(shù)基本尋址方式7、偏移尋址:基址尋址39404.4.2操作數(shù)基本尋址方式7、偏移尋址:變址尋址變址尋址就是將指令的地址碼部分給出的基準(zhǔn)地址A與CPU內(nèi)某特定的變址寄存器Rx中的內(nèi)容相加,以形成操作數(shù)的有效地址。EA=A+(R)。變址寄存器的內(nèi)容由用戶設(shè)定,程序執(zhí)行中是可變的。變址的用途是為重復(fù)操作的完成提供一種高效機制。例如主存位置A處存放一數(shù)值列表,要給每個元素加1。我們需要取每個數(shù)位,對它加1,然后再存回。需要的有效地址序列是A,A+1,A+2,...直到最后一個位置。此時值A(chǔ)存入指令地址字段,再用一個變址寄存器。每次操作完成后,變址寄存器的內(nèi)容+1.(R)+1->R404.4.2操作數(shù)基本尋址方式7、偏移尋址:變址尋址404.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值直接尋址LDAD
ADDD+1ADDD+2…ADDD+(N-1)DIV#NSTAANS[D]→ACC
[ACC]+[D+1]→ACC
[ACC]+[D+2]→ACC
…[ACC]+[D+N-1]→ACC
[ACC]÷N→ACC
[ACC]→ANS(主存單元)
4.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值414.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值變址尋址
LDA#0
LDX#0MADDX,D
INX
CPX#N
BNEM
DIV#N
STAANS0→ACC0→X(變址寄存器)[ACC]+[D+(X)]→ACC[X]+1→X判斷[X]-N,結(jié)果為0,Z=1,結(jié)果非0,Z=0.Z是零標(biāo)志位當(dāng)Z=1順序執(zhí)行,Z=0跳轉(zhuǎn)到M[ACC]÷N→ACC
[ACC]→ANS(主存單元)4.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值42434.4.2操作數(shù)基本尋址方式8、段尋址方式
存儲空間劃分為多段給定20位的地址空間,在尋址一個內(nèi)存單元時,由一個基地址再加上某些寄存器提供的16位偏移量形成20位的物理地址?;刂肪褪嵌渭拇嫫鳌?34.4.2操作數(shù)基本尋址方式8、段尋址方式
存儲空間43444.4.2操作數(shù)基本尋址方式9.堆棧尋址以先進后出原理存儲數(shù)據(jù).棧頂指針SP進棧:PUSHDATADATA->SP(SP)-1->SP出棧:POPDATA
(SP)+1->SP
444.4.2操作數(shù)基本尋址方式9.堆棧尋址44堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X157.3堆棧尋址舉例15200HACCSPX棧頂200H棧底主存15454.4.2操作數(shù)基本尋址方式例1
某微機的指令格式如下所示:
15109870操作碼XDD:位移量X:尋址特征位X=00:直接尋址;X=01:用變址寄存器X1進行變址;X=10:用變址寄存器X2進行變址;X=11:相對尋址設(shè)(PC)=1234H,(X1)=0037H,(X2)=1122H(H代表十六進制數(shù)),請確定下列指令中操作數(shù)的有效地①4420H②2244H③1322H④3521H⑤6723H4.4.2操作數(shù)基本尋址方式例1某微機的指令格式如下所示464.4.2操作數(shù)基本尋址方式解:1)X=00,D=20H,有效地址E=20H
2)X=10,D=44H有效地址E=1122H+44H=1166H
3)X=11,D=22H有效地址E=1234H+22H=1256H
4)X=01,D=21H有效地址E=0037H+21H=0058H
5)X=11,D=23H有效地址E=1234H+23H=1257H
4.4.2操作數(shù)基本尋址方式解:1)X=00,D=2474.4.2操作數(shù)基本尋址方式例2設(shè)相對尋址的轉(zhuǎn)移指令占三個字節(jié),第一個字節(jié)是操作碼,第二,三字節(jié)是相對位移(補碼表示),數(shù)據(jù)在存儲器中采用以低字節(jié)地址為字地址的存放方式。每當(dāng)CPU從存儲器中取出1個字節(jié)時,(PC)+1->PC(1)若PC當(dāng)前值是240(十進制),要求轉(zhuǎn)移到290(十進制),則轉(zhuǎn)移指令的第二,三字節(jié)的機器代碼是多少(2)若PC當(dāng)前值是240(十進制),要求轉(zhuǎn)移到200(十進制),則轉(zhuǎn)移指令的第二,三字節(jié)的機器代碼是多少解:(1)PC當(dāng)前值是240,取出指令后后PC的值是243,要求轉(zhuǎn)移到290,相對位移是290-243=47,轉(zhuǎn)換成補碼是2FH,數(shù)據(jù)在存儲器中采用以低字節(jié)地址為字地址的存放方式,第二字節(jié)是2FH,第三字節(jié)是00H.(2)(1)PC當(dāng)前值是240,取出指令后后PC的值是243,要求轉(zhuǎn)移到200,相對位移是200-243=-43,轉(zhuǎn)換成補碼是D5H,第二字節(jié)是D5H,第三字節(jié)是FFH.4.4.2操作數(shù)基本尋址方式例2設(shè)相對尋址的轉(zhuǎn)移指令占三484.4.2操作數(shù)基本尋址方式例3一條雙字長直接尋址的子程序調(diào)用指令,第一個字是操作碼和尋址特征,第二個字是地址碼5000H,假設(shè)PC當(dāng)前值是2000H,SP的內(nèi)容是0100H,棧頂內(nèi)容是2746H,存儲器按字節(jié)編址,CALL指令占四個字節(jié),進棧先執(zhí)行(SP)-2->SP,問下列幾種情形下,PC,SP和棧頂內(nèi)容各是多少(1)CALL指令被讀取前(2)CALL指令被調(diào)用后(3)子程序返回后解:(1)CALL指令被讀取前,(PC)=2000H,(SP)=0100H,棧頂2746H(2)CALL指令被調(diào)用后,程序斷點2004H進棧,棧頂2004H,(SP)=0100H-2=00FEH,(PC)=子程序入口地址5000H(3)子程序返回后,程序斷點出棧,(PC)=2004H,(SP)=0100H,棧頂內(nèi)容是2746H4.4.2操作數(shù)基本尋址方式例3一條雙字長直接尋址的子程49指令格式設(shè)計例4某機器字長是16位,存儲器尋址空間是128字,變址時的位移量是-64---+63,16個通用寄存器均可作為變址寄存器,設(shè)計一套指令系統(tǒng),滿足下列尋址類型的要求(1)直接尋址的二地址指令3條(2)變址尋址的一地址指令6條(3)寄存器尋址的二地址指令8條(4)直接尋址的一地址指令12條(5)零地址指令32條指令格式設(shè)計例4某機器字長是16位,存儲器尋址空間是128字50指令格式設(shè)計(1)OPA1A200011027711作為擴展(2)OPRx(寄存器)A11000—1110154711110和11111擴展(3)OPRiRj11110000—1111011184411111000—11111111擴展(4)OPA111110000—11111101197111111100—111111111擴展(5)OP1111111000000000— 16位1111111000011111指令格式設(shè)計(1)OPA151指令格式設(shè)計例5設(shè)某機配有基址寄存器和變址寄存器,采用1地址格式的指令系統(tǒng),允許直接和間接尋址,指令字長,機器字長,存儲字長都是16位(1)若采用單字長指令,共能完成105種操作,則指令可直接尋址的范圍是多少?一次間接尋址的范圍是多少?畫出指令格式并說明各字段的含義(2)若存儲字長不變,可采用什么方法直接訪問容量是16MB的主存?指令格式設(shè)計例5設(shè)某機配有基址寄存器和變址寄存器,采用152指令格式設(shè)計解:(1)完成105種操作,操作碼取7位,因允許直接,間接尋址,且有基址寄存器和變址寄存器.尋址特征位M2位形式地址AD16-7-2=7位OP(7)M(2)AD(7)直接尋址128,一次間接尋址216=65536容量是16MB存儲器正好與存儲字長是16位的8M存儲器容量相等,采用雙字長指令,操作碼和尋址特征位不變OP(7)M(2)AD1(7)AD2(16)形式地址23位223=8M指令格式設(shè)計解:(1)完成105種操作,操作碼取7位,因允許53指令格式設(shè)計例6某模型機共有64種操作,操作碼位數(shù)固定,具有以下特點:(1)采用1地址或者2地址格式(2)有寄存器尋址,直接尋址,相對尋址(相對位移-128~~+127)三種尋址方式(3)有16個通用寄存器,算術(shù)運算和邏輯運算的操作數(shù)都在寄存器中,結(jié)果也在寄存器中(4)取數(shù),存數(shù)指令在通用寄存器和存儲器之間傳送數(shù)據(jù)(5)存儲器容量是1MB,按字節(jié)編址。要求設(shè)計算術(shù)邏輯指令,取數(shù),存數(shù)指令和相對轉(zhuǎn)移指令指令格式設(shè)計例6某模型機共有64種操作,操作碼位數(shù)固定,具有54指令格式設(shè)計(1)算術(shù)邏輯指令為寄存器-寄存器型,單字長OP(6)M(2)Ri(4)Rj(4)(2)取數(shù)存數(shù)指令是寄存器-存儲器型,雙字長OP(6)M(2)Ri(4)A1(4)A2(16)A1和A共20位,可直接訪問按存儲器編址的1MB存儲器(3)相對轉(zhuǎn)移指令是一地址單字長OP(6)M(2)A(8)A是位移量指令格式設(shè)計(1)算術(shù)邏輯指令為寄存器-寄存器型,單字長55564.4.2操作數(shù)基本尋址方式例4.4:將ARM匯編語言翻譯成機器語言。已知5條ARM指令格式譯碼如下表所示:
設(shè)r3寄存器中保存數(shù)組A的基值,h放在寄存器r2中。C語言程序語句A[30]=h+A[30]可編譯成如下3條匯編語句指令:
LDRr5,[r3,#120]
;寄存器r5中獲得A[30]
ADDr5,r2,r5,
;寄存器r5中獲得h+A[30]
STRr5,[r3,#120]
;將h+A[30]存入到A[30]
請問這3條匯編語言指令的機器語言是什么?564.4.2操作數(shù)基本尋址方式例4.4:將ARM匯編語言56574.4.2操作數(shù)基本尋址方式解:首先利用十進制數(shù)來表示機器語言指令,然后轉(zhuǎn)換成二進制機器指令。從表4.3中我們可以確定3條機器語言指令:
LDR指令在第3字段(opcond)用操作碼24確定?;导拇嫫?指定在第4字段(Rn),目的寄存器5指定在第6字段(Rd),選擇A[30](120=30×4)的offset字段放在最后一個字段(offset12)。
ADD指令在第4字段(opcode)用操作碼4確定。3個寄存器操作(2、5和5)分別被指定在第6、7、8字段。
STR指令在第3字段用操作碼25確定,其余部分與LDR指令相同。574.4.2操作數(shù)基本尋址方式解:首先利用十進制數(shù)來表示57584.4.3尋址方式舉例Pentium的尋址方式CAI584.4.3尋址方式舉例Pentium的尋址方式CAI58594.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的尋址方式594.4.3尋址方式舉例方式算法立即作數(shù)=A寄存器LA=59604.4.3尋址方式舉例[例4]一種二地址RS型指令的結(jié)構(gòu)如下:
6位4位1位2位16位
OP通用寄存器IX偏移量D
其中I為間接尋址標(biāo)志位,X為尋址模式字段,D為偏移量字段。通過I,X,D的組合,可構(gòu)成如下尋址方式:
請寫出6種尋址方式的名稱。
604.4.3尋址方式舉例[例4]一種二地址RS型指令的60614.4.3尋址方式舉例[例5]將ARM匯編語言翻譯成機器語言。已知5條ARM指令格式譯碼如下表所示:設(shè)r3寄存器中保存數(shù)組A的基址,h放在寄存器r2中。C語言程序語句
A[30]=h+A[30]可編譯成如下3條匯編語言指令:
LDRr5,[r3,#120];寄存器r5中獲得A[30]
ADDr5,r2,r5;寄存器r5中獲得h+A[30]
STRr5,[r3,#120];將h+A[30]存入到A[30]
請問這3條匯編語言指令的機器語言是什么?
614.4.3尋址方式舉例[例5]將ARM匯編語言翻譯成61624.5典型指令4.5.1指令的分類
4.5.2基本指令系統(tǒng)的操作
4.5.3精簡指令系統(tǒng)
624.5典型指令4.5.1指令的分類
4.5.62634.5.1指令的分類數(shù)據(jù)傳送類指令一般傳送指令:
MOVAX,BX數(shù)據(jù)交換指令:
XCHG堆棧操作指令:
PUSH,POP運算類指令算術(shù)運算指令:
加、減、乘、除以及加1、減1、比較邏輯運算指令:
移位指令
程序控制類指令
程序控制類指令用于控制程序的執(zhí)行方向,并使程序具有測試、分析與判斷的能力。
輸入和輸出指令、字符串處理指令、特權(quán)指令、其他指令634.5.1指令的分類數(shù)據(jù)傳送類指令63644.5.2基本指令系統(tǒng)的操作
20%和80%規(guī)律:CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。VLSI技術(shù)發(fā)展引起的問題VLSI工藝要求規(guī)整性,而大量復(fù)雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難?,F(xiàn)在用微程序?qū)崿F(xiàn)復(fù)雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。CISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復(fù)雜程度。然而指令復(fù)雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結(jié)構(gòu)設(shè)計中,軟硬件的功能分配必須恰當(dāng)644.5.2基本指令系統(tǒng)的操作 20%和80%規(guī)律:CI64654.5.3精簡指令系統(tǒng)
特點(采用流水線技術(shù))簡單而統(tǒng)一格式的指令譯碼;大部分指令可以單周期執(zhí)行只有LOAD/STORE可以訪問存儲器簡單的尋址方式采用延遲轉(zhuǎn)移技術(shù)采用LOAD延遲技術(shù)三地址指令格式較多的寄存器對稱的指令格式返回654.5.3精簡指令系統(tǒng) 特點(采用流水線技術(shù))返回65664.6ARM匯編語言
匯編語言是計算機機器語言(二進制指令代碼)進行符號化的一種表示方法,每一個基本匯編語句對應(yīng)一條機器指令。
表4.11列出了嵌入式處理機ARM的匯編語言。其中操作數(shù)使用16個寄存器(r0,r1~r12,sp,Ir,pc),230個存儲字(字節(jié)編址,連續(xù)的字的地址間相差4)。返回CAICAI表4.11(上)表4.11(下)664.6ARM匯編語言匯編語言是計算機機器語言(66674.6ARM匯編語言在進行匯編語言程序設(shè)計時,可直接使用英文單詞或其縮寫表示指令,使用標(biāo)識表示數(shù)據(jù)或地址,從而有效地避免了記憶二進制的指令代碼。
不用由程序設(shè)計人員對指令和數(shù)據(jù)分配內(nèi)存地址,直接調(diào)用操作系統(tǒng)的某些程序段完成輸入輸出。
用編輯程序建立好的匯編語言源程序,需要經(jīng)過系統(tǒng)軟件中的“匯編器”翻譯為機器語言程序之后,才能交付給計算機硬件系統(tǒng)去執(zhí)行。
返回674.6ARM匯編語言在進行匯編語言程序設(shè)計時,6768本章小結(jié)一臺計算機中所有機器指令的集合,稱為這臺計算機的指令系統(tǒng)。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也影響到系統(tǒng)軟件。指令格式是指令字用二進制代碼表示的結(jié)構(gòu)形式,通常由操作碼字段和地址碼字段組成。返回68本章小結(jié)一臺計算機中所有機器6869本章小結(jié)操作碼字段表征指令的操作特性與功能,而地址碼字段指示操作數(shù)的地址。目前多采用二地址、單地址、零地址混合方式的指令格式。指令字長度分為:單字長、半字長、雙字長三種形式。高檔微機采用32位長度的單字長形式。返回69本章小結(jié)操作碼字段表征指令的6970本章小結(jié)形成指令地址的方式,稱為指令尋址方式。有順序?qū)ぶ泛吞S尋址兩種,由指令計數(shù)器來跟蹤。形成操作數(shù)地址的方式,稱為數(shù)據(jù)尋址方式。操作數(shù)可放在專用寄存器、通用寄存器、內(nèi)存和指令中。數(shù)據(jù)尋址方式有隱含尋址、立即尋址、直接尋址、間接尋址、寄存器尋址、寄存器間接尋址、相對尋址、基值尋址、變址尋址、塊尋址、段尋址等多種。按操作數(shù)的物理位置不同,有RR型和RS型。前者比后者執(zhí)行的速度快。返回70本章小結(jié)形成指令地址的方式7071本章小結(jié)按結(jié)構(gòu)不同,分為寄存器堆棧和存儲器堆棧。不同機器有不同的指令系統(tǒng)。一個較完善的指令系統(tǒng)應(yīng)當(dāng)包含數(shù)據(jù)傳送類指令、算術(shù)運算類指令、邏輯運算類指令、程序控制類指令、I/O類指令、字符串類指令、系統(tǒng)控制類指令。RISC指令系統(tǒng)是目前計算機發(fā)展的主流,也是CISC指令系統(tǒng)的改進,它的最大特點是:①指令條數(shù)少;②指令長度固定,指令格式和尋址方式種類少;③只有取數(shù)/存數(shù)指令訪問存儲器,其余指令的操作均在寄存器之間進行。返回71本章小結(jié)按結(jié)構(gòu)不同,分為寄存7172本章小結(jié)匯編語言與具體機器的依賴性很強。為了解該語言的特點,列出了目前流行的嵌入式處理機ARM的匯編語言。返回72本章小結(jié)匯編語言與具體機器的依賴性很強。為了解該語7273第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求4.2指令格式4.3操作數(shù)類型4.4指令和數(shù)據(jù)的尋址方式4.5典型指令4.6ARM匯編語言返回1第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求返回73744.1指令系統(tǒng)的發(fā)展與性能要求4.1.1指令系統(tǒng)的發(fā)展4.1.2對指令系統(tǒng)性能的要求4.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系
24.1指令系統(tǒng)的發(fā)展與性能要求4.1.1指令系統(tǒng)的發(fā)展74754.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng)基本概念指令:就是要計算機執(zhí)行某種操作的命令。從計算機組成的層次結(jié)構(gòu)來說,計算機的指令有微指令、機器指令和宏指令之分。微指令是微程序級的命令,它屬于硬件;宏指令:由若干條機器指令組成的軟件指令,它屬于軟件;機器指令:介于微指令與宏指令之間,通常簡稱為指令,每一條指令可完成一個獨立的算術(shù)運算或邏輯運算操作。本章所討論的指令,是機器指令。一臺計算機中所有機器指令的集合,稱為這臺計算機的指令系統(tǒng)。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍34.1.1指令系統(tǒng)的發(fā)展指令系統(tǒng)基本概念75764.1.1指令系統(tǒng)的發(fā)展發(fā)展情況復(fù)雜指令系統(tǒng)計算機,簡稱CISC。指令系統(tǒng)多達二三百條。CISC中大約有20%的指令使用頻率高,占據(jù)了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。VLSI技術(shù)發(fā)展引起的問題VLSI工藝要求規(guī)整性,而大量復(fù)雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難?,F(xiàn)在用微程序?qū)崿F(xiàn)復(fù)雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現(xiàn)在控制存儲器和主存的速度差縮小。CISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復(fù)雜程度。然而指令復(fù)雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結(jié)構(gòu)設(shè)計中,軟硬件的功能分配必須恰當(dāng),但是如此龐大的指令系統(tǒng)不但使計算機的研制周期變長,難以保證正確性,不易調(diào)試維護,而且由于采用了大量使用頻率很低的復(fù)雜指令而造成硬件資源浪費。精簡指令系統(tǒng)計算機:簡稱RISC,人們又提出了便于VLSI技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機。(1)選取使用頻率高的簡單指令,指令條數(shù)少。(2)指令條數(shù)固定,指令格式種類少,尋址方式種類少。(3)只有取數(shù)、存數(shù)指令訪問存儲器,其他指令的操作都在寄存器之間進行。44.1.1指令系統(tǒng)的發(fā)展發(fā)展情況76774.1.2對指令系統(tǒng)性能的要求完備性:完備性是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。一臺計算機中最基本、必不可少的指令是不多的。許多指令可用最基本的指令編程來實現(xiàn)。例如,乘除運算指令、浮點運算指令可直接用硬件來實現(xiàn),也可用基本指令編寫的程序來實現(xiàn)。采用硬件指令的目的是提高程序執(zhí)行速度,便于用戶編寫程序。有效性:有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現(xiàn)在程序占據(jù)存儲空間小、執(zhí)行速度快。一般來說,一個功能更強、更完善的指令系統(tǒng),必定有更好的有效性。規(guī)整性:規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。對稱性是指:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運算指令可支持字節(jié)、字、雙字整數(shù)的運算,十進制數(shù)運算和單、雙精度浮點數(shù)運算等;指令格式和數(shù)據(jù)格式的一致性是指:指令長度和數(shù)據(jù)長度有一定的關(guān)系,以方便處理和存取。例如指令長度和數(shù)據(jù)長度通常是字節(jié)長度的整數(shù)倍。兼容性:系列機各機種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機種上基本軟件可以通用。但由于不同機種推出的時間不同,在結(jié)構(gòu)和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容”,即低檔機上運行的軟件可以在高檔機上運行。54.1.2對指令系統(tǒng)性能的要求完備性:完備性是指用匯編語77784.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與高級語言關(guān)系
比較內(nèi)容高級語言低級語言
1對程序員的訓(xùn)練要求(1)通用算法(2)語言規(guī)則(3)硬件知識
有較少不要
有較多要
2對機器獨立的程度獨立不獨立
3編制程序的難易程度易難
4編制程序所需時間短較長
5程序執(zhí)行時間較長短
6編譯過程中對計算機資源的要求多少64.1.3低級語言與硬件結(jié)構(gòu)的關(guān)系低級語言與高級語言關(guān)系78794.2指令格式4.2.1操作碼4.2.2地址碼4.2.3指令字長度4.2.4指令助記符4.2.5指令格式舉例指令格式包括兩個方面:操作碼字段地址碼字段74.2指令格式4.2.1操作碼操作碼字段地址碼字段79804.2.1操作碼設(shè)計計算機時,對指令系統(tǒng)的每一條指令都要規(guī)定一個操作碼。指令的操作碼OP表示該指令應(yīng)進行什么性質(zhì)的操作,如進行加法、減法、乘法、除法、取數(shù)、存數(shù)等等。不同的指令用操作碼字段的不同編碼來表示,每一種編碼代表一種指令。組成操作碼字段的位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模。較大的指令系統(tǒng)就需要更多的位數(shù)來表示每條特定的指令。等長(指令規(guī)整,譯碼簡單)例如IBM370機,該機字長32位,16個通用寄存器R0~R15,共有183條指令;指令的長度可以分為16位、32位和48位等幾種,所有指令的操作碼都是8位固定長度。固定長度編碼的主要缺點是:信息的冗余極大,使程序的總長度增加。84.2.1操作碼設(shè)計計算機時,對指令系統(tǒng)的每一條指令都要80814.2.2地址碼根據(jù)一條指令中有幾個操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。三地址指令二地址指令單地址指令零地址指令操作碼(4位)A1(6位)操作碼(4位)A1(6位)A2(6位)操作碼(4位)A1(6位)A2(6位)操作碼A3(6位)94.2.2地址碼根據(jù)一條指令中有幾個操作數(shù)地址,可將該指81824.2.2地址碼三地址指令指令格式如下:OPA1A2A3操作碼op
第一操作數(shù)A1
第二操作數(shù)A2
結(jié)果A3功能描述:(A1)op(A2)→A3(PC)+1→PC這種格式雖然省去了一個地址,但指令長度仍比較長,所以只在字長較長的大、中型機中使用,而小型、微型機中很少使用。104.2.2地址碼三地址指令82834.2.2地址碼二地址指令其格式如下:OPA1A2操作碼op第一操作數(shù)A1第二操作數(shù)A2
功能描述:(A1)op(A2)→A1(PC)+1→PC二地址指令在計算機中得到了廣泛的應(yīng)用,但是在使用時有一點必須注意:指令執(zhí)行之后,A1中原存的內(nèi)容已經(jīng)被新的運算結(jié)果替換了。114.2.2地址碼二地址指令83844.2.2地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:SS存儲器-存儲器類型RS寄存器-存儲器類型RR寄存器-寄存器類型 慢124.2.2地址碼二地址地址根據(jù)操作數(shù)的物理位置分為:慢84854.2.2地址碼一地址指令指令格式為:OPA1操作碼op
第一操作數(shù)A1功能描述:(AC)op(A1)→A1(PC)+1→PC單操作數(shù)運算指令,如“+1”、“-1”、“求反”指令中給出一個源操作數(shù)的地址134.2.2地址碼一地址指令85864.2.2地址碼零地址指令
其格式為:OP操作碼op“停機”、“空操作”、“清除”等控制類指令。144.2.2地址碼零地址指令
86874.2.3指令字長度概念指令字長度(一個指令字包含二進制代碼的位數(shù))機器字長:計算機能直接處理的二進制數(shù)據(jù)的位數(shù)。單字長指令半字長指令雙字長指令多字長指令的優(yōu)缺點優(yōu)點提供足夠的地址位來解決訪問內(nèi)存任何單元的尋址問題;缺點必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運算速度,又占用了更多的存儲空間。指令系統(tǒng)中指令采用等長指令的優(yōu)點:各種指令字長度是相等的,指令字結(jié)構(gòu)簡單,且指令字長度是不變的;采用非等長指令的的優(yōu)點:各種指令字長度隨指令功能而異,結(jié)構(gòu)靈活,能充分利用指令長度,但指令的控制較復(fù)雜。154.2.3指令字長度概念87884.2.4指令助記符由于硬件只能識別1和0,所以采用二進制操作碼是必要的,但是我們用二進制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符用3~4個英文字母來表示操作碼,一般為英文縮寫不同的計算機系統(tǒng),規(guī)定不一樣必須用匯編語言翻譯成二進制代碼164.2.4指令助記符由于硬件只能識別1和0,所以采用二884.2.4指令助記符典型指令助記符加法ADD001減法SUB010傳送MOV011跳轉(zhuǎn)JMP100轉(zhuǎn)子程序JSR101存數(shù)STO110取數(shù)LAD1114.2.4指令助記符典型指令助記符89904.2.5指令格式舉例8位微型計算機的指令格式如8088,字長8位,指令結(jié)構(gòu)可變包括單字長指令、雙字長指令和三字長指令操作碼長度固定184.2.5指令格式舉例8位微型計算機的指令格式90914.2.5指令格式舉例MIPSR400020世紀(jì)80年代后期RISC計算機系統(tǒng),32位字長,32個通用寄存器。
R型(寄存器)指令:算術(shù)運算數(shù)據(jù)放在通用寄存器中
6位5位5位5位5位6位
oprsrtrdshamtfunct
I型(立即數(shù))指令:取數(shù)、存數(shù)指令訪問存儲器
6位5位5位16位
op
rs
rt
常數(shù)或地址194.2.5指令格式舉例MIPSR400020世紀(jì)891924.2.5指令格式舉例:ARM指令格式204.2.5指令格式舉例:ARM指令格式92934.2.5指令格式舉例[例1]分析下列指令格式的特點1597430OP----源寄存器目標(biāo)寄存器解:1.單字長二地址指令2.操作碼字段可以指定128條指令3.源寄存器和目標(biāo)寄存器都是通用寄存器,兩個操作都在寄存器中,RR型指令4.常用于算術(shù)邏輯運算214.2.5指令格式舉例[例1]分析下列指令格式的特點93944.2.5指令格式舉例[例2]分析下列指令格式的特點15107430OP----源寄存器變址寄存器位移量(16位)解:1.雙字長二地址指令,訪問存儲器2.操作碼字段可以指定64條指令3.一個操作數(shù)在源寄存器中,另一個在存儲器中(由變址寄存器和位移量決定),RS型指令224.2.5指令格式舉例[例2]分析下列指令格式的特點94954.2.5指令格式舉例[例3]MIPSR4000匯編語言中,寄存器$s0~$s7對應(yīng)寄存器號為十進制16~23,寄存器$t0~$t7對應(yīng)的寄存器號為8~15。請將下表4條匯編語言翻譯成對應(yīng)的機器語言十進制數(shù)表示。
234.2.5指令格式舉例[例3]MIPSR4000匯95964.3操作數(shù)類型4.3.1一般的數(shù)據(jù)類型4.3.2Pentium數(shù)據(jù)類型4.3.3PowerPC數(shù)據(jù)類型
244.3操作數(shù)類型4.3.1一般的數(shù)據(jù)類型96974.3.1一般的數(shù)據(jù)類型地址數(shù)據(jù):無符號整數(shù)。數(shù)值數(shù)據(jù):計算機中普遍使用的三種類型的數(shù)值數(shù)據(jù)1.定點整數(shù),小數(shù)2.浮點數(shù)3.壓縮十進制數(shù)。字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。邏輯數(shù)據(jù):一個單元中有幾位二進制bit項組成,每個bit的值可以是1或0。當(dāng)數(shù)據(jù)以這種方式看待時,稱為邏輯性數(shù)據(jù)。254.3.1一般的數(shù)據(jù)類型地址數(shù)據(jù):無符號整數(shù)。97984.3.2Pentium數(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)偏移的32位有效地址
位串:一個連續(xù)的位序列
字符串:
浮點數(shù):單精度雙精度264.3.2Pentium數(shù)據(jù)類型常規(guī):字節(jié),字98994.3.3PowerPC數(shù)據(jù)類型無符號字節(jié):邏輯和整數(shù)算術(shù)運算,由存儲器取出裝入通用寄存器時,寄存器左端以0填充
無符號半字:16位
有符號半字:16位算術(shù)運算,由存儲器取出裝入寄存器時,要進行符號位擴展,所有空出位都用符號位填充
無符號字:32位邏輯運算,或作為地址指針
有符號字:32位算術(shù)運算
無符號雙字:64位地址指針
字節(jié)串:0-128字節(jié)
浮點數(shù):IEEE754單精度雙精度
274.3.3PowerPC數(shù)據(jù)類型無符號字節(jié)991004.4指令和數(shù)據(jù)的尋址方式4.4.1指令的尋址方式4.4.2操作數(shù)基本尋址方式4.4.3尋址方式舉例
284.4指令和數(shù)據(jù)的尋址方式4.4.1指令的尋址方式1001014.4.1指令的尋址方式順序方式PC跳躍方式:由本條指令給出下條指令的地址碼,PC的內(nèi)容也必須相應(yīng)改變,跳躍尋址可以實現(xiàn)程序轉(zhuǎn)移或者構(gòu)成循環(huán)程序CAI294.4.1指令的尋址方式順序方式CAI1011024.4.2操作數(shù)基本尋址方式形成操作數(shù)有效地址的方法,稱為尋址方式。例如,一種單地址指令的結(jié)構(gòu)如下:
操作碼OP、變址X、間址I、形式地址A304.4.2操作數(shù)基本尋址方式形成操作數(shù)有效地址的方法,1021034.4.2操作數(shù)基本尋址方式CAI314.4.2操作數(shù)基本尋址方式CAI1031044.4.2操作數(shù)基本尋址方式1、隱含尋址指令中隱含著操作數(shù)的地址如某些運算,隱含了累加器AC作為源和目的寄存器ADD100H324.4.2操作數(shù)基本尋址方式1、隱含尋址1041054.4.2操作數(shù)基本尋址方式2、立即尋址立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的部分不是通常意義上的操作數(shù)地址,而是操作數(shù)本身,也就是說數(shù)據(jù)就包含在指令中,只要取出指令,就取出了可以立即使用的操作數(shù),節(jié)省了訪問內(nèi)存的時間。因此,這樣的操作數(shù)被稱為立即數(shù)。指令格式:操作碼OP
操作數(shù)AADDax,100H334.4.2操作數(shù)基本尋址方式2、立即尋址1051064.4.2操作數(shù)基本尋址方式3、直接尋址
指令中地址碼字段給出的地址A就是操作數(shù)的有效地址EA(EffectiveAddress),即EA=A。344.4.2操作數(shù)基本尋址方式3、直接尋址1061074.4.2操作數(shù)基本尋址方式4、間接尋址
間接尋址意味著指令的地址碼部分給出的地址A不是操作數(shù)的地址,而是存放操作數(shù)地址的主存單元的地址,簡稱操作數(shù)地址的地址。操作數(shù)的有效地址的計算公式為:EA=(A),訪問內(nèi)存兩次354.4.2操作數(shù)基本尋址方式4、間接尋址1071084.4.2操作數(shù)基本尋址方式5、寄存器尋址在指令的地址碼部分給出CPU內(nèi)某一通用寄存器的編號,指令的操作數(shù)存放在相應(yīng)的寄存器中,即EA=Ri優(yōu)點:(1)由于寄存器在CPU的內(nèi)部,指令在執(zhí)行時從寄存器中取操作數(shù)比訪問主存要快得多;(2)由于寄存器的數(shù)量較少,因此寄存器編號所占位數(shù)也較少,從而可以有效減少指令的地址碼字段的長度。364.4.2操作數(shù)基本尋址方式5、寄存器尋址優(yōu)點:1081094.4.2操作數(shù)基本尋址方式6、寄存器間接尋址
為了克服間接尋址中多次訪存的缺點,可采用寄存器間接尋址,即將操作數(shù)放在主存儲器中,而操作數(shù)的地址放在某一通用寄存器中,然后在指令的地址碼部分給出該通用寄存器的編號,這時有EA=(Ri)這種尋址方式的指令較短,并且在取指后只需一次訪存便可得到操作數(shù),因此指令執(zhí)行速度較前述的間接尋址方式要快,也是目前在計算機中使用較為廣泛的一種尋址方式。374.4.2操作數(shù)基本尋址方式6、寄存器間接尋址
這種尋1091104.4.2操作數(shù)基本尋址方式7、偏移尋址相對尋址:由程序計數(shù)器PC提供基準(zhǔn)地址,而指令的地址碼部分給出相對的位移量D,兩者相加后作為操作數(shù)的有效地址,即:EA=(PC)+D。384.4.2操作數(shù)基本尋址方式7、偏移尋址1101114.4.2操作數(shù)基本尋址方式7、偏移尋址:基址尋址將主存空間分成若干段,每段首地址存放在基址寄存器中?;芳拇嫫鞯奈粩?shù)可以設(shè)置得很長,從而可以在較大的存儲空間中尋址?;穼ぶ分饕糜跒槌绦蚧驍?shù)據(jù)分配存儲空間,基址寄存器的內(nèi)容通常由操作系統(tǒng)確定,在程序執(zhí)行過程中其值是不變的,指令中的形式地址是可變的394.4.2操作數(shù)基本尋址方式7、偏移尋址:基址尋址1111124.4.2操作數(shù)基本尋址方式7、偏移尋址:變址尋址變址尋址就是將指令的地址碼部分給出的基準(zhǔn)地址A與CPU內(nèi)某特定的變址寄存器Rx中的內(nèi)容相加,以形成操作數(shù)的有效地址。EA=A+(R)。變址寄存器的內(nèi)容由用戶設(shè)定,程序執(zhí)行中是可變的。變址的用途是為重復(fù)操作的完成提供一種高效機制。例如主存位置A處存放一數(shù)值列表,要給每個元素加1。我們需要取每個數(shù)位,對它加1,然后再存回。需要的有效地址序列是A,A+1,A+2,...直到最后一個位置。此時值A(chǔ)存入指令地址字段,再用一個變址寄存器。每次操作完成后,變址寄存器的內(nèi)容+1.(R)+1->R404.4.2操作數(shù)基本尋址方式7、偏移尋址:變址尋址1124.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值直接尋址LDAD
ADDD+1ADDD+2…ADDD+(N-1)DIV#NSTAANS[D]→ACC
[ACC]+[D+1]→ACC
[ACC]+[D+2]→ACC
…[ACC]+[D+N-1]→ACC
[ACC]÷N→ACC
[ACC]→ANS(主存單元)
4.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值1134.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值變址尋址
LDA#0
LDX#0MADDX,D
INX
CPX#N
BNEM
DIV#N
STAANS0→ACC0→X(變址寄存器)[ACC]+[D+(X)]→ACC[X]+1→X判斷[X]-N,結(jié)果為0,Z=1,結(jié)果非0,Z=0.Z是零標(biāo)志位當(dāng)Z=1順序執(zhí)行,Z=0跳轉(zhuǎn)到M[ACC]÷N→ACC
[ACC]→ANS(主存單元)4.4.2操作數(shù)基本尋址方式求N個數(shù)的平均值1141154.4.2操作數(shù)基本尋址方式8、段尋址方式
存儲空間劃分為多段給定20位的地址空間,在尋址一個內(nèi)存單元時,由一個基地址再加上某些寄存器提供的16位偏移量形成20位的物理地址?;刂肪褪嵌渭拇嫫?。434.4.2操作數(shù)基本尋址方式8、段尋址方式
存儲空間1151164.4.2操作數(shù)基本尋址方式9.堆棧尋址以先進后出原理存儲數(shù)據(jù).棧頂指針SP進棧:PUSHDATADATA->SP(SP)-1->SP出棧:POPDATA
(SP)+1->SP
444.4.2操作數(shù)基本尋址方式9.堆棧尋址116堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X157.3堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151174.4.2操作數(shù)基本尋址方式例1
某微機的指令格式如下所示:
15109870操作碼XDD:位移量X:尋址特征位X=00:直接尋址;X=01:用變址寄存器X1進行變址;X=10:用變址寄存器X2進行變址;X=11:相對尋址設(shè)(PC)=1234H,(X1)=0037H,(X2)=1122H(H代表十六進制數(shù)),請確定下列指令中操作數(shù)的有效地①4420H②2244H③1322H④3521H⑤6723H4.4.2操作數(shù)基本尋址方式例1某微機的指令格式如下所示1184.4.2操作數(shù)基本尋址方式解:1)X=00,D=20H,有效地址E=20H
2)X=10,D=44H有效地址E=1122H+44H=1166H
3)X=11,D=22H有效地址E=1234H+22H=1256H
4)X=01,D=21H有效地址E=0037H+21H=0058H
5)X=11,D=23H有效地址E=1234H+23H=1257H
4.4.2操作數(shù)基本尋址方式解:1)X=00,D=21194.4.2操作數(shù)基本尋址方式例2設(shè)相對尋址的轉(zhuǎn)移指令占三個字節(jié),第一個字節(jié)是操作碼,第二,三字節(jié)是相對位移(補碼表示),數(shù)據(jù)在存儲器中采用以低字節(jié)地址為字地址的存放方式。每當(dāng)CPU從存儲器中取出1個字節(jié)時,(PC)+1->PC(1)若PC當(dāng)前值是240(十進制),要求轉(zhuǎn)移到290(十進制),則轉(zhuǎn)移指令的第二,三字節(jié)的機器代碼是
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型綠色牧草料采購合同模板
- 2025年度國際貿(mào)易實務(wù)出口合同履行與管理細則
- 2025年度國際能源資源開發(fā)合同-@-2
- 2025年鍋爐安裝工程安全設(shè)施配置與維護合同
- 2025年度跨境電商平臺股權(quán)質(zhì)押借款合同示例
- 2025年度跨境知識產(chǎn)權(quán)交易合同模板
- 2025年度會員卡管理系統(tǒng)采購及實施合同
- 2025年度合同法律意見書:租賃合同法律風(fēng)險分析與風(fēng)險防范手冊
- 2025年度農(nóng)業(yè)科技項目合作合同(年度版)
- 萬科2024新地城住宅銷售獨家代理合同
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語試題
- 春節(jié)節(jié)后收心會
- 《榜樣9》觀后感心得體會四
- 七年級下冊英語單詞表(人教版)-418個
- 交警安全進校園課件
- 2023-2024學(xué)年高中政治統(tǒng)編版選擇性必修二7-1 立足職場有法寶 課件(34張)
- 恩施州巴東縣核桃樹煤礦有限公司核桃樹煤礦礦產(chǎn)資源開發(fā)利用與生態(tài)復(fù)綠方案
- 部編版語文一年級下冊全冊大單元整體作業(yè)設(shè)計
- 中國心力衰竭診斷與治療指南解讀
- 電子技術(shù)的發(fā)展和應(yīng)用
- 北京生命科技研究院招聘筆試真題2022
評論
0/150
提交評論