第十三講 指令系統(tǒng)_第1頁
第十三講 指令系統(tǒng)_第2頁
第十三講 指令系統(tǒng)_第3頁
第十三講 指令系統(tǒng)_第4頁
第十三講 指令系統(tǒng)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第十三講指令系統(tǒng)本講主要內(nèi)容機(jī)器指令系統(tǒng)概述操作數(shù)類型和操作類型尋址方式指令格式舉例RISC技術(shù)機(jī)器指令構(gòu)成及指令編碼本講將解決的主要問題2、指令是如何構(gòu)成?3、為什么指令要這樣構(gòu)成?1、指令是干什么的?4、指令系統(tǒng)及指令系統(tǒng)的演化過程如何?一、指令概述?用計(jì)算機(jī)解題時(shí),一般都要編制程序,程序既可用高級(jí)語言編寫,亦可用機(jī)器語言編寫;但計(jì)算機(jī)只能夠識(shí)別和執(zhí)行用機(jī)器語言編寫的程序;?各種高級(jí)語言編寫的應(yīng)用程序,最終都要翻譯成機(jī)器語言來執(zhí)行。?

機(jī)器語言是由一系列的指令(語句)組成的;?指令的格式就是機(jī)器語言的語法;?每條指令規(guī)定機(jī)器完成一定的功能。1、指令系統(tǒng)的發(fā)展從計(jì)算機(jī)組成的層次結(jié)構(gòu)來說,計(jì)算機(jī)的指令有微指令、機(jī)器指令和宏指令之分。微指令是微程序級(jí)的命令,它屬于硬件;宏指令是由若干條機(jī)器指令組成的軟件指令,它屬于軟件;機(jī)器指令則介于微指令與宏指令之間,通常簡稱為指令,每一條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。本章所討論的指令,是機(jī)器指令。一臺(tái)計(jì)算機(jī)的所有的指令集合稱為該機(jī)的指令系統(tǒng)或指令集。它是程序工作者編制程序的基本依據(jù),也是進(jìn)行計(jì)算機(jī)邏輯設(shè)計(jì)的基本依據(jù)。2、對(duì)指令系統(tǒng)的要求完備性:完備性是指用匯編語言編寫各種程序時(shí),指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實(shí)現(xiàn)。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。有效性:是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運(yùn)行。高效率主要表現(xiàn)在程序占據(jù)存儲(chǔ)空間小、執(zhí)行速度快。一般來說,一個(gè)功能更強(qiáng)、更完善的指令系統(tǒng),必定有更好的有效性。

規(guī)整性:包括指令系統(tǒng)的對(duì)稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。

兼容性:系列機(jī)各機(jī)種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機(jī)種上基本軟件可以通用。3、低級(jí)語言與硬件的關(guān)系計(jì)算機(jī)語言有高級(jí)語言和低級(jí)語言之分。高級(jí)語言如C,F(xiàn)ORTRAN等,其語句和用法與具體機(jī)器的指令系統(tǒng)無關(guān)。低級(jí)語言分機(jī)器語言(二進(jìn)制語言)和匯編語言(符號(hào)語言),這兩種語言都是面向機(jī)器的語言,它們和具體機(jī)器的指令系統(tǒng)密切相關(guān)。一條指令應(yīng)包含如下信息:進(jìn)行何種操作:即操作性質(zhì)。體現(xiàn)在指令中被稱為操作碼。操作的對(duì)象:數(shù)據(jù)來源以及如何尋找操作數(shù)。體現(xiàn)在指令中被稱為地址碼操作結(jié)果:結(jié)果存放在何處。下一條指令又如何尋找?二、機(jī)器指令格式(一)、指令的一般格式操作碼字段

地址碼字段1.操作碼反映機(jī)器做什么操作操作碼所占的二進(jìn)制位數(shù)決定了一臺(tái)計(jì)算機(jī)所能允許的指令條數(shù)。例如,操作碼占用六位二進(jìn)制碼時(shí),這臺(tái)計(jì)算機(jī)最多允許有:

26=64條指令

固定長度操作碼是指操作碼所占的二進(jìn)制位數(shù)固定不變,而且集中放在指令字的一個(gè)字段中。這種格式有利于簡化硬件設(shè)計(jì),減少指令譯碼時(shí)間,廣泛用于字長較長的大、中型計(jì)算機(jī)和超級(jí)小型計(jì)算機(jī)中。例如IBM370和VAX﹣11系列機(jī)中,操作碼的長度都是8位,可表示256條指令。

(2)可變長度操作碼可變長度操作碼是操作碼擴(kuò)展技術(shù)的應(yīng)用,即操作碼的長度是可變的,且分散地放在指令的不同字段中。這種格式有利于壓縮程序中操作碼的平均長度,在字長較短的微型機(jī)中被廣泛應(yīng)用。如:PDP-11,INTEL8086/80386等,其操作碼的長度均是可變的。(1)固定長度操作碼操作碼字段分兩種:

下圖是一種擴(kuò)展操作碼的安排示意。

這是一個(gè)16位字長的指令碼,包括4位基本操作碼字段和三個(gè)4位長的地址字段。4位基本操作碼,若全部用于三地址指令,則有16條。

顯然,4位基本操作碼是不夠的,必須向地址碼字段擴(kuò)展操作作碼的長度。其擴(kuò)展方法及步驟如下:

OP

A1

A2

A3

4位4位4位4位①15條三地址指令的操作碼由4位基本操作碼0000~1110所給定,剩下一個(gè)1111則用于把操作碼擴(kuò)展到X地址碼字段,即由4位擴(kuò)展到8位;?②

14條二地址指令的操作碼由8位操作碼的1111,0000~1101給定,剩下的1111,1110和1111,1111又可用于把操作碼擴(kuò)充到Y(jié)地址字段,即從8位又?jǐn)U充到12位;

31條一地址指令的操作碼由12位操作碼的

1111,1110,0000~1111,1111,1110給定。

由此類堆,還可以把剩下的1111,1111,1111擴(kuò)充到Z地址碼字段而形成的16位操作碼,這時(shí)還可由1111,1111,1111,0000~1111,1111,1111,1111給出16條零地址指令。

除了這種安排外,還有多種其它安排方法。如:形成15條三地址指令,12條二地址指令,31條一地址指令,16條零地址指令,共74條指令。實(shí)際的機(jī)器可以采用各種靈活的擴(kuò)展方式,其思路與此類似。

11111111000011111111

1111000111111111

1111

111116零(3)擴(kuò)展操作碼技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼最多15條三地址指令最多15條二地址指令最多15條一地址指令16條零地址指令(3)擴(kuò)展操作碼技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼三地址指令操作碼每減少一種可多構(gòu)成24種二地址指令二地址指令操作碼每減少一種可多構(gòu)成24

種一地址指令

上述方法是在不增加指令長度的情況下,采用對(duì)地址少的指令使用較長的操作碼,對(duì)地址數(shù)多的指令使用較短的操作碼。其實(shí)質(zhì)是增加了指令的數(shù)量,豐富了指令的功能。

在可變長操作碼的指令系統(tǒng)設(shè)計(jì)中,究竟使用何種擴(kuò)展方法為好,指令的使用頻度(即在程序中出現(xiàn)的概率)是非常重要的依據(jù)。即頻度高的指令應(yīng)分配短的操作碼,頻度低的指令則分配較長的操作碼。這樣,既可有效地縮短操作碼在程序中的平均長度,節(jié)省存儲(chǔ)空間,又可縮短常用指令的譯碼時(shí)間以提高程序的運(yùn)行速度。

其缺點(diǎn)是譯碼系統(tǒng)比固定操作碼復(fù)雜,增加了設(shè)計(jì)控制器的難度,需要更多的硬件作支持。2.地址碼(1)四地址(2)三地址OPA1A2A3A486666A1

第一操作數(shù)地址A2

第二操作數(shù)地址A3

結(jié)果的地址A4

下一條指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次訪存4次訪存尋址范圍26=64尋址范圍28=256若A3用A1或A2代替7.1設(shè)指令字長為32位操作碼固定為8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次訪存若ACC代替A1(或A2)若結(jié)果存于ACC(4)一地址(5)零地址OPA1824無地址碼(ACC)OP(A1)ACC2次訪存尋址范圍212=4K尋址范圍224=16M3次訪存7.13.指令字長度與機(jī)器字長度的關(guān)系

機(jī)器字長度簡稱字長,指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)。字長是計(jì)算機(jī)中的一項(xiàng)重要技術(shù)指標(biāo),字長越長,計(jì)算機(jī)的運(yùn)算精度越高;

字長還能反映指令的直接尋址能力,若字長n位全用來尋址,可直接尋址2n個(gè)字節(jié)。為了便于處理字符數(shù)據(jù)及盡可能地利用存儲(chǔ)空間,一般把機(jī)器字長定為字節(jié)長度(8位)的整數(shù)倍,即是8位、16位、32位或64位。微型、小型機(jī)的字長多為8位、16位和32位,中、大型機(jī)的字長多為32位和64位。因此,一個(gè)字中可以存儲(chǔ)1個(gè)、2個(gè)、4個(gè)或8個(gè)字符。(1)機(jī)器字長指令字的長度取決于操作碼的長度、操作數(shù)地址的長度和操作數(shù)地址的個(gè)數(shù)。由于操作碼的長度、操作數(shù)地址的長度以及所采用操作數(shù)地址數(shù)目不同,各種指令的長度不是固定的,當(dāng)然也不是任意的。為了充分利用存儲(chǔ)空間,指令字的長度也定為字節(jié)長度的整數(shù)倍。例如INTEL8086/80586系列機(jī)的指令長度分別為8位、16位、24位、32位、48位等。而最長的指令可達(dá)120位。(2)指令字長(3)指令字長與機(jī)器字長的關(guān)系指令字長度與機(jī)器字長度沒有固定的關(guān)系,它可以等于機(jī)器字長,也可以大于或小于機(jī)器字長。指令字長度等于機(jī)器字長度的指令,稱為單字長指令;指令字長等于兩個(gè)機(jī)器字長的指令,稱為雙字長指令;指令字長度只有半個(gè)機(jī)器字長度的指令,稱為半字長指令。例如IBM370系列機(jī)的機(jī)器字長為32位,它卻有16位的半字長指令、32位的單字長指令、48位的一個(gè)半字長指令。等字長指令結(jié)構(gòu)在同一個(gè)指令系統(tǒng)中,所有的指令字長度都是相等的,稱為等字長指令字結(jié)構(gòu),這種指令字結(jié)構(gòu)簡單,控制方便;變字長指令結(jié)構(gòu)如果各種指令字長度隨指令的功能而變化,如有的指令是單字長指令,有的指令是雙字長指令或三字長指令,則稱為變字長指令結(jié)構(gòu),這種指令字結(jié)構(gòu)靈活,能充分利用指令字長度,但指令的控制較復(fù)雜。各種指令字的結(jié)構(gòu)情況地址

II+1I+2I+3指令指令指令指令┆一個(gè)字長┆┆指令指令指令指令地址

II+1I+2I+3一個(gè)字長指令指令指令指令┆地址

II+1I+2I+3

指令1

指令2一個(gè)字長┆單字長指令雙字長指令半字長指令變字長指令指令3一個(gè)字長地址II+1I+2I+3I+4I+5I+6指令1指令2┆小結(jié)當(dāng)用一些硬件資源代替指令字中的地址碼字段后當(dāng)指令的地址字段為寄存器時(shí)可擴(kuò)大指令的尋址范圍可縮短指令字長可減少訪存次數(shù)三地址OPR1,

R2,R3二地址OPR1,R2

一地址OPR1

指令執(zhí)行階段不訪存可縮短指令字長4.指令助記符

由于硬件只能識(shí)別1和0,所以采用二進(jìn)制操作碼是必要的,但是我們用二進(jìn)制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用3個(gè)或4個(gè)英文縮寫字母來表示。這種縮寫碼叫做指令助記符。

典型指令

指令助記符

二進(jìn)制操作碼

加法

ADD

001

減法

SUB

010

傳送

MOV

011

跳轉(zhuǎn)

JMP

100

轉(zhuǎn)子

JSR

101

存儲(chǔ)

STR

110

讀數(shù)

LDA

111典型的指令助記符例指令格式如下所示,其中OP為操作碼,試分析指令格式的特點(diǎn)。

OP

--------

源寄存器

目標(biāo)寄存器15

9

7

43

0解:

(1)單字長二地址指令。

(2)操作碼字段OP可以指定128條指令。

(3)源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè)),所以是RR型指令,兩個(gè)操作數(shù)均在寄存器中。

(4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。例指令格式如下所示,OP為操作碼字段,試分析指令格式特點(diǎn)。

OP

-----------

源寄存器

變址寄存器

位移量(16位)15

10

7

43

0解:

(1)雙字長二地址指令,用于訪問存儲(chǔ)器。

(2)操作碼字段OP為6位,可以指定64種操作。

(3)一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定),所以是RS型指令。二、操作數(shù)類型和操作種類一、操作數(shù)類型地址數(shù)字字符邏輯數(shù)無符號(hào)整數(shù)定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù)ASCII邏輯運(yùn)算二、數(shù)據(jù)在存儲(chǔ)器中的存放方式字地址為低字節(jié)地址字地址為高字節(jié)地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)存儲(chǔ)器中的數(shù)據(jù)存放(存儲(chǔ)字長為

32

位)地址(十進(jìn)制)04812162024283236雙字雙字(地址32)雙字雙字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字節(jié)(地址

8)字節(jié)(地址

9)字節(jié)(地址10)字節(jié)(地址11)字(地址4)字(地址0)字節(jié)(地址14)字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)邊界對(duì)準(zhǔn)地址(十進(jìn)制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)邊界未對(duì)準(zhǔn)

三、操作類型1.

數(shù)據(jù)傳送源目的寄存器寄存器寄存器寄存器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器置“1”,清“0”2.算術(shù)邏輯操作加、減、乘、除、增1、減1、求補(bǔ)、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算與、或、非、異或、位操作、位測試、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算術(shù)移位4.轉(zhuǎn)移(1)無條件轉(zhuǎn)移JMP(2)條件轉(zhuǎn)移結(jié)果為零轉(zhuǎn)(Z=1)

JZ結(jié)果溢出轉(zhuǎn)(O=1)JO結(jié)果有進(jìn)位轉(zhuǎn)(C=1)JC跳過一條指令SKP循環(huán)移位(帶進(jìn)位和不帶進(jìn)位)如300…305306307SKPDZD=0則跳邏輯移位完成觸發(fā)器(3)調(diào)用和返回CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB2...INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)與陷阱指令意外事故的中斷設(shè)置供用戶使用的陷阱指令如8086INTTYPE軟中斷提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用5.輸入輸出一般不提供給用戶直接使用

在出現(xiàn)事故時(shí),由CPU自動(dòng)產(chǎn)生并執(zhí)行(隱指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址如如INAL,nOUTn,AL三、

尋址方式尋址方式

確定本條指令的操作數(shù)地址下一條欲執(zhí)行指令的指令地址指令尋址數(shù)據(jù)尋址尋址方式在存儲(chǔ)器中,操作數(shù)或指令字寫入或讀出的方式,有地址指定方式、相聯(lián)存儲(chǔ)方式和堆棧存取方式。幾乎所有的計(jì)算機(jī),在內(nèi)存中都采用地址指定方式當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。(一)、指令尋址順序(PC)+1PC跳躍由轉(zhuǎn)移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?二、數(shù)據(jù)尋址形式地址指令字中的地址有效地址操作數(shù)的真實(shí)地址約定

指令字長=存儲(chǔ)字長=機(jī)器字長1.立即尋址指令執(zhí)行階段不訪存

A的位數(shù)限制了立即數(shù)的范圍形式地址A操作碼尋址特征OP#A立即尋址特征立即數(shù)可正可負(fù)補(bǔ)碼形式地址A就是操作數(shù)2.直接尋址EA=A操作數(shù)主存尋址特征LDAAAACC執(zhí)行階段訪問一次存儲(chǔ)器

A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改(必須修改A)有效地址由形式地址直接給出3.隱含尋址操作數(shù)地址隱含在操作碼中ADDA操作數(shù)主存尋址特征AACC暫存ALU另一個(gè)操作數(shù)隱含在ACC中如8086MUL指令被乘數(shù)隱含在AX(16位)或AL(8位)中MOVS指令源操作數(shù)的地址隱含在SI中目的操作數(shù)的地址隱含在DI中指令字中少了一個(gè)地址字段,可縮短指令字長4.間接尋址EA=(A)有效地址由形式地址間接提供OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴(kuò)大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存……子程序主程序…8081201202調(diào)用子程序調(diào)用子程序間接尋址編程舉例(A)=81(A)=202……@間址特征JMP@A…

……

…5.寄存器尋址EA=Ri執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快OPRi尋址特征寄存器個(gè)數(shù)有限,可縮短指令字長操作數(shù)…………R0RiRn寄存器有效地址即為寄存器編號(hào)EA=(Ri

)6.寄存器間接尋址

有效地址在寄存器中,操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征

便于編制循環(huán)程序地址…………R0RiRn寄存器有效地址在寄存器中7.基址尋址(1)采用專用寄存器作基址寄存器EA=(BR)+ABR為基址寄存器OPA操作數(shù)主存尋址特征ALUBR

可擴(kuò)大尋址范圍

有利于多道程序

BR內(nèi)容由操作系統(tǒng)或管理程序確定

在程序的執(zhí)行過程中BR內(nèi)容不變,形式地址A可變(2)

采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0

作基址寄存器由用戶指定哪個(gè)通用寄存器作為基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過程中R0內(nèi)容不變,形式地址A可變8.變址尋址EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX可擴(kuò)大尋址范圍便于處理數(shù)組問題

IX的內(nèi)容由用戶給定IX為變址寄存器(專用)在程序的執(zhí)行過程中IX內(nèi)容可變,形式地址A不變通用寄存器也可以作為變址寄存器例設(shè)數(shù)據(jù)塊首地址為D,求N

個(gè)數(shù)的平均值直接尋址變址尋址LDADADDD+1ADDD+2…ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2

條指令共8條指令A(yù)DDX,DMX為變址寄存器D為形式地址(X)和#N

比較(X)+1X結(jié)果不為零則轉(zhuǎn)9.相對(duì)尋址EA=(PC)+AA是相對(duì)于當(dāng)前指令的位移量(可正可負(fù),補(bǔ)碼)A的位數(shù)決定操作數(shù)的尋址范圍程序浮動(dòng)

廣泛用于轉(zhuǎn)移指令操作數(shù)尋址特征ALUOPA相對(duì)距離A1000PC

…主存1000AOP(1)相對(duì)尋址舉例M

隨程序所在存儲(chǔ)空間的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNE

MDIV#NSTAANSMM+1M+2M+3而指令BNE

與指令A(yù)DDX,D

相對(duì)位移量不變–3*

指令BNE操作數(shù)的有效地址為–3*

相對(duì)尋址特征*(2)按字節(jié)尋址的相對(duì)尋址舉例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8設(shè)當(dāng)前指令地址PC=2000H轉(zhuǎn)移后的目的地址為

2008H因?yàn)槿〕鯦MP

*+8

后PC=2002H二字節(jié)指令故JMP

*+8

指令的第二字節(jié)為2008H-2002H=06H7.310.堆棧尋址(1)堆棧的特點(diǎn)堆棧硬堆棧軟堆棧多個(gè)寄存器指定的存儲(chǔ)空間先進(jìn)后出(一個(gè)入出口)棧頂?shù)刂酚蒘P

指出–11FFFH+12000H進(jìn)棧(SP)–1SP出棧(SP)+1SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進(jìn)棧出棧1FFFH棧頂2000H棧頂7.3(2)堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X157.3(3)SP的修改與主存編址方法有關(guān)①按字編址進(jìn)棧出棧(SP)–1SP(SP)+1SP②按字節(jié)編址存儲(chǔ)字長16位進(jìn)棧出棧(SP)–2SP(SP)+2SP存儲(chǔ)字長32位進(jìn)棧出棧(SP)–4SP(SP)+4SP7.3四、指令格式舉例(一)、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類型數(shù)據(jù)類型指令格式包括指令個(gè)數(shù)及操作的難易程度指令字長是否固定尋址方式寄存器個(gè)數(shù)地址碼位數(shù)、地址個(gè)數(shù)、尋址方式類型操作碼位數(shù)、是否采用擴(kuò)展操作碼技術(shù),確定哪些數(shù)據(jù)類型可參與操作指令尋址、操作數(shù)尋址寄存器的多少直接影響指令的執(zhí)行時(shí)間(二)、指令格式舉例1.PDP–8指令字長固定12位

操作碼

頁地址碼訪存類指令0235411寄存器類指令

111輔助操作碼02311I/O類指令

110設(shè)備操作碼02311987.4采用擴(kuò)展操作碼技術(shù)2.PDP–11源地址OP4661616目的地址存儲(chǔ)器地址1存儲(chǔ)器地址2OP10616目的地址存儲(chǔ)器地址目的地址466源地址OP106目的地址OP-CODE16OP-CODE指令字長有16位、32位、48位三種零地址(16位)一地址(16位)二地址R–R(16位)二地址R–M(32位)二地址M–M(48位)擴(kuò)展操作碼技術(shù)7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412二地址R–R基址加變址尋址二地址R–M三地址R–M基址尋址二地址M–M基址尋址基址尋址立即數(shù)–

M7.4OPB1D1LB2D2SS格式884124124.Intel8086(1)指令字長(2)地址格式1~6個(gè)字節(jié)MOVWORDPTR[0204],0138H6字節(jié)INCAX1字節(jié)一地址NOP1字節(jié)CALL段內(nèi)調(diào)用3字節(jié)零地址5字節(jié)段間調(diào)用寄存器–寄存器寄存器–立即數(shù)寄存器–存儲(chǔ)器ADDAX,BX2字節(jié)ADDAX,[3048H]4字節(jié)ADDAX,3048H

3字節(jié)二地址CALL7.4例1:某機(jī)器字長16位,存儲(chǔ)器直接尋址空間為128字,變址時(shí)的位移量為-64~+63,16個(gè)通用寄存器均可作為變址寄存器。設(shè)計(jì)一套指令系統(tǒng)格式,滿足下列尋址類型的要求。 (1)直接尋址的二地址指令3條。 (2)變址尋址的一地址指令6條。 (3)寄存器尋址的二地址指令8條。 (4)直接尋址的一地址指令12條。 (5)零地址指令32條。 試問還有多少種代碼未用?若安排寄存器尋址的一地址指令,還能容納多少條?

例2:設(shè)某機(jī)配有基址寄存器和變址寄存器,采用一地址的指令系統(tǒng),允許直接和間接尋址,且指令字長、機(jī)器字長和存儲(chǔ)字長均為16位。 (1)若采用單字長指令,共能完成105種操作,則指令可直接尋址的范圍是多少?一次間接尋址的尋址范圍是多少?畫出其指令格式并說明各字段的含義。 (2)若存儲(chǔ)器

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論