計(jì)算機(jī)組成原理:第四章 指令系統(tǒng)_第1頁(yè)
計(jì)算機(jī)組成原理:第四章 指令系統(tǒng)_第2頁(yè)
計(jì)算機(jī)組成原理:第四章 指令系統(tǒng)_第3頁(yè)
計(jì)算機(jī)組成原理:第四章 指令系統(tǒng)_第4頁(yè)
計(jì)算機(jī)組成原理:第四章 指令系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章指令系統(tǒng)4.

1

指令的發(fā)展與性能要求4.2

指令格式4.

3

操作數(shù)類型和操作類型4.4尋址方式(編址方式)4.5RISC和CISC技術(shù)4.6指令系統(tǒng)舉例第4章指令系統(tǒng)學(xué)習(xí)要點(diǎn):理解:掌握:指令及數(shù)據(jù)的尋址。指令格式、指令系統(tǒng)及典型指令系統(tǒng)。4.1指令系統(tǒng)的發(fā)展與性能要求指令使計(jì)算機(jī)完成基本運(yùn)算所需信號(hào)的組合,包括數(shù)據(jù)信息、地址信息和控制信息。指令是用戶使用計(jì)算機(jī)和計(jì)算機(jī)本身運(yùn)行的最小功能單位。指令系統(tǒng)

一臺(tái)計(jì)算機(jī)使用和支持的全部指令構(gòu)成該機(jī)的指令系統(tǒng)。1、20世紀(jì)50年代和60年代早期指令系統(tǒng)一般只有定點(diǎn)加減、邏輯運(yùn)算、數(shù)據(jù)傳送和轉(zhuǎn)移等十幾至幾十條最基本的指令,而且尋址方式簡(jiǎn)單。一、發(fā)展2、60年代中、后期除了具有以上最基本的指令以外,還設(shè)置了乘除法運(yùn)算指令、浮點(diǎn)運(yùn)算指令、十進(jìn)制運(yùn)算指令、字符串處理指令等,指令數(shù)多達(dá)一、二百條,尋址方式也趨于多樣化。3、60年代出現(xiàn)了系列(series)計(jì)算機(jī)原因:為了繼承已有的軟件,減少軟件的開發(fā)費(fèi)用。系列計(jì)算機(jī):是指基本指令系統(tǒng)相同,基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī)。優(yōu)點(diǎn):在舊機(jī)種上運(yùn)行各種軟件可以不加任何修改地在新機(jī)種上運(yùn)行。

隨著VLSI技術(shù)的發(fā)展,硬件結(jié)構(gòu)越來(lái)越復(fù)雜,所支持的指令系統(tǒng)也趨于多用途、強(qiáng)功能化。指令系統(tǒng)的改進(jìn)是圍繞著縮小指令與高級(jí)語(yǔ)言的語(yǔ)義差異以及有利于操作系統(tǒng)的優(yōu)化而進(jìn)行的。

CISC(Complexinstructionsetcomputer復(fù)雜指令系統(tǒng)計(jì)算機(jī))

(1)設(shè)計(jì)周期長(zhǎng),正確性難以保證且不易維護(hù)等;(2)需要大量硬件支持的大多數(shù)較復(fù)雜的指令卻利用率很低,造成硬件資源的極大浪費(fèi)。為了解決這個(gè)問(wèn)題,在70年代末人們提出了便于VLSI實(shí)現(xiàn)的精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī),簡(jiǎn)稱RISC。RISC(Reducedinstructionsetcomputer精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))

要評(píng)價(jià)一臺(tái)計(jì)算機(jī)的指令系統(tǒng),通常從以下四個(gè)方面考慮:指令系統(tǒng)的完備性——常用指令齊全、編程方便。指令系統(tǒng)的高效性——程序占用的內(nèi)存空間少、運(yùn)行速度快。指令系統(tǒng)的規(guī)整性——指令和數(shù)據(jù)使用規(guī)則統(tǒng)一簡(jiǎn)單、易學(xué)易記。指令系統(tǒng)的兼容性——同一系列的低檔計(jì)算機(jī)的程序能在高檔計(jì)算機(jī)上直接運(yùn)行。二、性能要求程序、指令、指令系統(tǒng)、指令格式計(jì)算機(jī)的程序是由一系列的指令組成。指令是要計(jì)算機(jī)執(zhí)行某種操作的命令。指令系統(tǒng)是一臺(tái)計(jì)算機(jī)中所有指令的集合決定計(jì)算機(jī)的基本功能,軟件與硬件的界面是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的一個(gè)核心問(wèn)題指令格式是用二進(jìn)制代碼表示的指令形式由操作碼字段和地址碼字段組成操作碼:表示指令進(jìn)行什么性質(zhì)的操作地址碼:指定參與操作的操作數(shù)地址4.2 指令格式一、指令的一般格式操作碼字段地址碼字段1.操作碼反映機(jī)器做什么操作(性質(zhì)與功能)(1)長(zhǎng)度固定(2)長(zhǎng)度可變用于指令字長(zhǎng)較長(zhǎng)的大中型計(jì)算機(jī)中、RISC如IBM370,操作碼8位機(jī)器最多包含28=256條指令。操作碼分散在指令字的不同字段中用于指令字長(zhǎng)較短的微型計(jì)算機(jī)中,如PDP-11、Intel8086等2.地址碼操作數(shù)的地址、結(jié)果的地址、下一條指令的地址零地址指令一地址指令二地址指令三地址指令多地址指令根據(jù)地址碼個(gè)數(shù)的多少,指令可以分為以下五種:(1)多地址指令(四地址指令)格式OPA1A2A3A4

OP為操作碼,A1第一操作數(shù)地址,

A2第二操作數(shù)地址,

A3結(jié)果地址,

A4下一條指令地址

例如:(A1)OP(A2)→A3四次訪存(取指一次,取操作數(shù)兩次,存數(shù)一次)(3)二地址指令格式A1代表第一個(gè)操作數(shù)的地址,A2代表第二個(gè)操作數(shù)和操作結(jié)果的地址

例如:

(A1)OP(A2)→A2

OPA1A2(2)三地址指令格式例如:(A1)OP(A2)→A3

OPA1A2A3例如:(A1)OP(A2)→ACC(5)零地址指令格式OP無(wú)需任何操作數(shù)例如:空操作(NOP)、停機(jī)(HLT)默認(rèn)操作數(shù)地址例如:子程序返回(RET)、中斷返回(IRET)(4)一地址指令格式完成加、減、移位等單操作數(shù)指令例如:(ACC)OP(A1)→ACCOPA1

小結(jié)

使用一些硬件資源(PC、ACC)代替指令字中的地址碼字段后

當(dāng)指令的地址字段為寄存器時(shí)

擴(kuò)大指令操作數(shù)的直接尋址范圍

縮短指令字長(zhǎng)

減少訪存次數(shù)指令執(zhí)行階段不訪存可縮短指令字長(zhǎng)零地址指令

一地址指令二地址指令三地址指令多地址指令指令短,執(zhí)行速度快,硬件易實(shí)現(xiàn)指令的功能性強(qiáng),便于編程

三地址OPR1,

R2,R3

二地址OPR1,R2

一地址OPR1

指令和數(shù)據(jù)都以二進(jìn)制形式存儲(chǔ),但指令地址由PC規(guī)定,而數(shù)據(jù)地址由指令規(guī)定。二、指令操作碼的擴(kuò)展技術(shù)操作碼的位數(shù)隨地址數(shù)的減少而增加OPA1A2A3例:某機(jī)器指令長(zhǎng)度為16位,操作碼4位,4位地址碼,若指令可含有三地址、二地址、一地址和零地址,問(wèn)該機(jī)器一共有多少條指令?操作碼地址碼

15~1211~8

7~43~0OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼最多15條三地址指令最多15條二地址指令最多15條一地址指令16條零地址指令操作碼設(shè)置為:0000~1110操作碼設(shè)置為:11110000~11111110操作碼設(shè)置為:111111110000~111111111110可表示61條指令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

種一地址指令例:某機(jī)器的指令長(zhǎng)度為16位,操作碼4位,4位地址碼,若三地址指令僅需13條,二地址指令需47條,一地址指令需15條,零地址指令需16條,共91條指令。(1)三地址指令:(13條)0000

XXXXXXXXXXXX~1100XXXXXXXXXXXX(2)二地址指令:(47條)

1101

0000XXXXXXXX~1111

1110XXXXXXXX

即:(1101

0000XXXXXXXX~1101

1111XXXXXXXX16條)

(1110

0000XXXXXXXX~1110

1111XXXXXXXX16條)

(1111

0000XXXXXXXX~11111110XXXXXXXX15條)(3)一地址指令:(15條)

11111111

0000XXXX~1111111

1110XXXX(4)零地址指令:(16條)1111111111110000~111111111111

1111OPA1A2A3

15~1211~8

7~43~0思考:若指令字長(zhǎng)是16位,若零地址指令有15條、一地址指令31條、二地址指令14條、三地址指令15條。假設(shè)每個(gè)地址碼需要用4位的二進(jìn)制表示,該指令系統(tǒng)應(yīng)如何編碼?假設(shè)指令字長(zhǎng)是16位,操作數(shù)的地址碼為6位,指令有零地址指令、一地址指令、二地址指令三種格式。(1)設(shè)操作碼固定,若零地址指令有P種,一地址指令有Q種,則二地址指令最多有多少種?(2)采用擴(kuò)展操作碼技術(shù),若二地址指令有X種,零地址指令有Y種,則一地址指令最多有多少種?16-P-Q三、

指令長(zhǎng)度與字長(zhǎng)的關(guān)系字長(zhǎng):指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它是計(jì)算機(jī)的一個(gè)重要技術(shù)指標(biāo)。作用:字長(zhǎng)決定了計(jì)算機(jī)的運(yùn)算精度,字長(zhǎng)越長(zhǎng),計(jì)算機(jī)的運(yùn)算精度越高。一般機(jī)器的字長(zhǎng)都是字節(jié)長(zhǎng)度(即8位)的l、2、4或8倍數(shù)。指令的長(zhǎng)度:主要取決于操作碼的長(zhǎng)度、操作數(shù)地址的長(zhǎng)度和操作數(shù)地址的個(gè)數(shù)。各指令的長(zhǎng)度不是固定的,指令的長(zhǎng)度通常為字節(jié)的整數(shù)倍。指令的長(zhǎng)度與機(jī)器的字長(zhǎng)沒有固定的關(guān)系,它既可以小于或等于機(jī)器的字長(zhǎng),也可以大于機(jī)器的字長(zhǎng)。前者稱為短格式指令,后者稱為長(zhǎng)格式指令,一條指令存放在地址連續(xù)的存儲(chǔ)單元中。Intel8086指令格式:占1~6個(gè)字節(jié)操作碼操作碼尋址方式操作碼尋址方式位移量低位位移量高位操作碼尋址方式+操作碼數(shù)據(jù)低位數(shù)據(jù)高位操作碼尋址方式+操作碼數(shù)據(jù)低位數(shù)據(jù)高位位移量低位位移量高位四、指令格式舉例MOVAX,BXMOVAX,[BX]指令字格式:100010dwmodregr/md:寄存器尋址對(duì)象

(1)目的操作數(shù);(0)源操作數(shù)。w:字操作標(biāo)志位(1)對(duì)字進(jìn)行操作;(0)對(duì)字節(jié)進(jìn)行操作。89D88B07MODR/M00011011W=0W=1000[BX+SI][BX+SI+8位位移量][BX+SI+16位位移量]ALAX001[BX+DI][BX+DI+8位位移量][BX+DI+16位位移量]CLCX010[BP+SI][BP+SI+8位位移量][BP+SI+16位位移量]DLDX011[BP+DI][BP+DI+8位位移量][BP+DI+16位位移量]BLBX100[SI][SI+8位位移量][SI+16位位移量]AHSP101[DI][DI+8位位移量][DI+16位位移量]CHBP11016位直接地址[BP+8位位移量][BP+16位位移量]DHSI111[BX][BX+8位位移量][BX+16位位移量]BHDI求指令MOVSP,BX的機(jī)器碼。求指令MOVCL,[BX+1234H]的機(jī)器碼。MODR/M00011011W=0W=1000[BX+SI][BX+SI+8位位移量][BX+SI+16位位移量]ALAX001[BX+DI][BX+DI+8位位移量][BX+DI+16位位移量]CLCX010[BP+SI][BP+SI+8位位移量][BP+SI+16位位移量]DLDX011[BP+DI][BP+DI+8位位移量][BP+DI+16位位移量]BLBX100[SI][SI+8位位移量][SI+16位位移量]AHSP101[DI][DI+8位位移量][DI+16位位移量]CHBP11016位直接地址[BP+8位位移量][BP+16位位移量]DHSI111[BX][BX+8位位移量][BX+16位位移量]BHDId:寄存器尋址對(duì)象

(1)目的操作數(shù);(0)源操作數(shù)。w:字操作標(biāo)志位(1)對(duì)字進(jìn)行操作;(0)對(duì)字節(jié)進(jìn)行操作。8BE3H8A8F3412H例:分析指令格式的特點(diǎn)單字長(zhǎng)二地址指令。操作碼字段OP長(zhǎng)度為7位,可指定128條指令。源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè))。兩個(gè)操作數(shù)均在寄存器中,所以是寄存器-寄存器型指令。這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。1597430OP

--------源寄存器目標(biāo)寄存器例:分析指令格式的特點(diǎn)雙字長(zhǎng)二地址指令,用于訪問(wèn)存儲(chǔ)器。操作碼字段OP為7位,可以指定128種操作。一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定),所以是寄存器-存儲(chǔ)器型指令。1597430OP

--------源寄存器變址寄存器位移量(16位)

4.3操作數(shù)類型和操作類型一、操作數(shù)的類型目前計(jì)算機(jī)所用數(shù)據(jù)字長(zhǎng)一般為32位,存儲(chǔ)器的地址一般按字節(jié)表示。常見的操作數(shù)類型有地址、數(shù)字、字符、邏輯數(shù)據(jù)等。(1)地址:無(wú)符號(hào)整數(shù)(2)數(shù)字:定點(diǎn)數(shù)(整數(shù))、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù)等。(3)字符:ASCII(4)邏輯數(shù):邏輯運(yùn)算二、數(shù)據(jù)在存儲(chǔ)器中的存放方式字地址為低字節(jié)地址字地址為高字節(jié)地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)為便于硬件實(shí)現(xiàn),一般要求多字節(jié)數(shù)據(jù)在存儲(chǔ)器的存放方式滿足“邊界對(duì)準(zhǔn)”。存儲(chǔ)器中的數(shù)據(jù)存放(存儲(chǔ)字長(zhǎng)為32位),可按字節(jié)、半字、字、雙字訪問(wèn)。地址(十進(jìn)制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)邊界未對(duì)準(zhǔn)地址(十進(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)三、操作類型1.數(shù)據(jù)傳送(寄存器與寄存器、寄存器與存儲(chǔ)器、存儲(chǔ)器與存儲(chǔ)器)源目的寄存器寄存器寄存器寄存器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器置“1”,清“0”2.算術(shù)邏輯操作加、減、乘、除、增1、減1、求補(bǔ)、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算與、或、非、異或、位操作、位測(cè)試、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVEADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST算術(shù)運(yùn)算邏輯運(yùn)算3.移位操作算術(shù)移位4.轉(zhuǎn)移(1)無(wú)條件轉(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跳過(guò)一條指令SKP循環(huán)移位(帶進(jìn)位和不帶進(jìn)位)如300…305306307SKPDZD=0則跳邏輯移位完成觸發(fā)器(3)調(diào)用和返回主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB2CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN...調(diào)用指令與返回指令配合使用程序的執(zhí)行流程:主程序→SUB1

→SUB2

→SUB1

→SUB2

→SUB1

→主程序INAX,nOUTDX,AL5.輸入輸出INAL,DX入

端口地址CPU的寄存器出

CPU的寄存器端口地址如如OUTn,AL4.4尋址方式尋址方式的類別:

指令尋址方式:用于形成指令在內(nèi)存中的地址

數(shù)據(jù)(操作數(shù))尋址方式:用于形成操作數(shù)在內(nèi)存中(寄存器)的地址地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí),其存儲(chǔ)單元的編號(hào),就是該操作數(shù)或指令在存儲(chǔ)器中的地址。尋址方式是指確定本條指令的數(shù)據(jù)地址以及下一條欲執(zhí)行指令的地址的方法,又稱編址方式。

CPU根據(jù)尋址方式指定的方法找到所需操作數(shù)或指令。一、指令尋址方式1.順序?qū)ぶ贩绞剑篜C尋址(PC)+1→PC2.跳躍尋址方式:由轉(zhuǎn)移指令指出(程序的控制轉(zhuǎn)移)——條件轉(zhuǎn)移vs無(wú)條件轉(zhuǎn)移——相對(duì)轉(zhuǎn)移vs絕對(duì)轉(zhuǎn)移相對(duì)轉(zhuǎn)移:程序計(jì)數(shù)器PC的內(nèi)容加上偏移量形成指令的目的地址相對(duì)轉(zhuǎn)移的跳躍尋址方式二、數(shù)據(jù)(操作數(shù))尋址方式1.立即數(shù)尋址:形式地址不是操作數(shù)的地址,而直接是操作數(shù)本身例如:INT#3形式地址A:指令字中的地址碼

有效地址EA:操作數(shù)的真實(shí)地址

形式地址A操作碼尋址特征OP#A立即數(shù)尋址特征立即數(shù)(可正可負(fù))指令執(zhí)行階段不訪存

形式地址的位數(shù)限制了立即數(shù)的范圍操作數(shù)不可修改,用于賦初值或設(shè)置常數(shù)2.直接尋址:指令的形式地址直接給出有效地址,即操作數(shù)地址操作數(shù)主存尋址特征LDAAAACC例如:INC1000執(zhí)行階段訪問(wèn)一次存儲(chǔ)器

A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改3.隱含尋址:指令中不明顯給出操作數(shù)的地址,隱藏在操作碼中ADDA操作數(shù)主存尋址特征AACC暫存ALU另一個(gè)操作數(shù)隱含在ACC中例如:8086MUL指令:被乘數(shù)隱含在AX(16位)或AL(8位)中MOVS指令:源操作數(shù)的地址隱含在SI中目的操作數(shù)的地址隱含在DI中指令字中少了一個(gè)地址字段,可縮短指令字長(zhǎng)4.間接尋址:指令的形式地址間接給出有效地址,即操作數(shù)地址的地址OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴(kuò)大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存寄存器間接尋址:指令中形式地址指的是寄存器地址

存儲(chǔ)器間接尋址:指令中形式地址指的是存儲(chǔ)器地址

例如:INC(R)寄存器間接尋址存儲(chǔ)器間接尋址例如:INC(1000)有效地址在寄存器中,操作數(shù)在存儲(chǔ)器中便于編制循環(huán)程序

有效地址和操作數(shù)都在存儲(chǔ)器中……子程序主程序…8081201202調(diào)用子程序調(diào)用子程序間接尋址編程舉例(A)=81……@間址特征JMP

@A…

……

…(A)=2025.寄存器尋址:指令的形式地址為寄存器地址,即操作數(shù)存放在寄存器中OPRi尋址特征操作數(shù)…………R0RiRn寄存器執(zhí)行階段不訪存,只訪問(wèn)寄存器,執(zhí)行速度快寄存器個(gè)數(shù)有限,可縮短指令字長(zhǎng)例如:INCR16.基址尋址:操作數(shù)地址由基址寄存器內(nèi)容和指令中形式地址相加得到專用寄存器或通用寄存器

位移量

OPA操作數(shù)主存尋址特征ALUBR可擴(kuò)大尋址范圍有利于多道程序BR為基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0作基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過(guò)程中基址寄存器內(nèi)容不變,形式地址A可變7.變址尋址:操作數(shù)地址由變址寄存器內(nèi)容和指令中形式地址相加得到OPA操作數(shù)主存尋址特征ALUIX可擴(kuò)大尋址范圍便于處理數(shù)組問(wèn)題

IX的內(nèi)容由用戶給定在程序的執(zhí)行過(guò)程中IX內(nèi)容可變,形式地址A不變8.相對(duì)尋址:操作數(shù)地址由程序計(jì)數(shù)器PC內(nèi)容和指令中形式地址相加得到當(dāng)前執(zhí)行指令的地址

形式地址A的位數(shù)決定操作數(shù)的尋址范圍程序浮動(dòng)廣泛用于轉(zhuǎn)移指令操作數(shù)尋址特征ALUOPA相對(duì)距離A1000PC…主存1000AOP(1)相對(duì)尋址舉例M隨程序所在存儲(chǔ)空間的位置不同而不同LDA#0LDX#0ADDX,DINXCPX#NBNEMDIV#NSTAANSMM+1M+2M+3而指令BNE*–3與指令A(yù)DDX,D相對(duì)位移量不變BNE*–3*相對(duì)尋址特征指令BNE*–3操作數(shù)的有效地址為EA=(M+3)–3=M

OP位移量2000H2008H8OP06H2000H2008H8設(shè)當(dāng)前指令地址PC=2000H轉(zhuǎn)移后的目的地址為2008H因?yàn)槿〕鯦MP*

+位移量后PC=2002H二字節(jié)指令故指令的第二字節(jié)為

2008H-2002H=06H(2)按字節(jié)尋址的相對(duì)尋址舉例JMP

*

+位移量9.堆棧尋址堆棧原則:“先進(jìn)后出FILO”或“后進(jìn)先出LIFO”

只有一個(gè)數(shù)據(jù)出入口,即當(dāng)前棧頂(不斷變化),棧頂?shù)刂酚蒘P指出。兩種基本操作

寫入:數(shù)據(jù)壓進(jìn)堆棧PUSH;讀出:數(shù)據(jù)彈出堆棧操作POP堆棧用在存儲(chǔ)器和寄存器中

存儲(chǔ)器堆棧:使用主存部分空間作為堆棧區(qū)域寄存器堆棧(串聯(lián)堆棧):使用一組寄存器以堆棧方式存取數(shù)據(jù)–11FFFH+12000H進(jìn)棧(SP)–1→SP出棧(SP)+1

SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進(jìn)棧出棧1FFFH棧頂2000

H棧頂立即數(shù)尋址存儲(chǔ)器直接尋址間接尋址變址尋址基址尋址基址加變址尋址在指令中在寄存器中在主存中在I/O端口中直接尋址寄存器間接尋址寄存器尋址寄存器間接尋址存儲(chǔ)器間接尋址操作數(shù)的尋址方式——總結(jié)操作數(shù)

例1、某計(jì)算機(jī)的字長(zhǎng)為16位,存儲(chǔ)器按字編址,訪內(nèi)存指令格式如下圖所示。其中,OP是操作碼,M是定義尋址方式(見下表),A為形式地址。設(shè)PC和Rx分別為程序計(jì)數(shù)器和變址寄存器,字長(zhǎng)為16位,問(wèn):①該格式能定義多少種指令?②各種尋址方式的尋址范圍為多少字?③寫出各種尋址方式的有效地址EA的計(jì)算式。尋址模式表25種=32種1個(gè)字,即操作數(shù)EA=(PC)28=256字216=64K字EA=AEA=(A)216=64K字EA=(Rx)+AEA=(PC)+A28=256字例2、某計(jì)算機(jī)有變址尋址、間接尋址和相對(duì)尋址等尋址方式,設(shè)當(dāng)前指令的地址碼部分為001AH,正在執(zhí)行的指令所在地址為1F05H,正在執(zhí)行的指令占2個(gè)字節(jié),變址寄存器中的內(nèi)容為23A0H。請(qǐng)求出①當(dāng)執(zhí)行取數(shù)指令時(shí),如為變址尋址方式,則取出的數(shù)為

。②如為間接尋址,取出的數(shù)為

。③當(dāng)執(zhí)行相對(duì)轉(zhuǎn)移指令時(shí),轉(zhuǎn)移地址為

。己知存儲(chǔ)器的部分地址及相應(yīng)內(nèi)容如下:1748H2600H1F21H例3、根據(jù)操作數(shù)所在位置,指出其尋址方式:操作數(shù)在寄存器中,稱為(A)尋址方式;操作數(shù)地址在寄存器中,稱為(B)尋址方式;操作數(shù)在指令中,稱為(C)尋址方式;操作數(shù)地址在指令中,為(D)尋址方式。操作數(shù)的地址,為某一個(gè)寄存器中的內(nèi)容與位移之和,則可以是(E)、(F)、(G)尋址方式。解:(A)寄存器尋址方式(B)寄存器間接尋址方式(C)立即數(shù)尋址方式(D)直接尋址方式(E)變址尋址(F)基址尋址(G)基址加變址尋址P112—5.2、5.34.5RISC技術(shù)和CISC技術(shù)一、什么是復(fù)雜指令系統(tǒng)計(jì)算機(jī)?

為增強(qiáng)指令功能,設(shè)置一些功能復(fù)雜的指令,把一些原來(lái)由軟件實(shí)現(xiàn)的、常用的功能改用硬件的指令系統(tǒng)來(lái)實(shí)現(xiàn),這種計(jì)算機(jī)稱為復(fù)雜指令集計(jì)算機(jī)。二、CISC的特點(diǎn)系統(tǒng)指令復(fù)雜龐大,各種指令使用頻度相差大指令長(zhǎng)度不固定、指令格式種類多、尋址方式多

訪存指令不受限制大多數(shù)指令需要多個(gè)時(shí)鐘周期執(zhí)行完畢采用微程序控制器

CPU中設(shè)有專用寄存器

難以用優(yōu)化編譯生成高效的目的代碼選用頻度高簡(jiǎn)單指令指令長(zhǎng)度固定、格式種類少、尋址方式少只有取數(shù)/存數(shù)指令訪存,其他指令都在寄存器之間進(jìn)行CPU中有多個(gè)通用寄存器采用流水技術(shù)在一個(gè)機(jī)器周期內(nèi)完成一條指令采用組合邏輯實(shí)現(xiàn)控制器采用高級(jí)語(yǔ)言優(yōu)化編譯程序四、RISC的特點(diǎn)80—20規(guī)律典型程序中80%的語(yǔ)句僅使用處理機(jī)中20%的指令三、什么是精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)?盡量簡(jiǎn)化指令功能,只保留那些功能簡(jiǎn)單,能在一個(gè)節(jié)拍內(nèi)執(zhí)行完成指令,較復(fù)雜的指令用一段子程序來(lái)實(shí)現(xiàn),這種計(jì)算機(jī)系統(tǒng)稱為精簡(jiǎn)指令集計(jì)算機(jī)。4.6指令系統(tǒng)舉例一、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類型數(shù)據(jù)類型指令格式包括指令個(gè)數(shù)及操作的難易程度指令字長(zhǎng)是否固定尋址方式寄存器個(gè)數(shù)地址碼位數(shù)、地址個(gè)數(shù)、尋址方式類型操作碼位數(shù)、是否采用擴(kuò)展操作碼技術(shù),確定哪些數(shù)據(jù)類型可參與操作指令尋址、操作數(shù)尋址寄存器的多少直接影響指令的執(zhí)行時(shí)間二.SPARC的指令系統(tǒng)1.SPARC的指令類型(2)存數(shù)/取數(shù)指令22條(按字節(jié)、半字、字、雙字的存?。┐鎯?chǔ)器分區(qū):用戶程序區(qū)、用戶數(shù)據(jù)區(qū)、系統(tǒng)程序區(qū)和系統(tǒng)數(shù)據(jù)區(qū)。(1)算術(shù)運(yùn)算/邏輯運(yùn)算/移位指令31條如:加法指令A(yù)DD

普通加法ADDcc普通加法且置狀態(tài)觸發(fā)器N、Z、V、CADDX

帶進(jìn)位加法ADDXcc帶進(jìn)位加法且置狀態(tài)觸發(fā)器N、Z、V、C(3)控制轉(zhuǎn)移指令(5條)(4)讀/寫專用寄存器指令(8條)(5)浮點(diǎn)運(yùn)算指令(6)協(xié)處理器指令全稱為“可擴(kuò)充處理器架構(gòu)”,是RISC微處理器架構(gòu)之一。2.SPARC的指令格式指令字長(zhǎng)32位、共有三種格式OP、OP2、OP3——操作碼Opf———————浮點(diǎn)指令操作碼Rd———————目的寄存器Rsl、rs2—————通用寄存器Simml3—————擴(kuò)展符號(hào)立即數(shù)I————————第二個(gè)操作數(shù)選擇3.各類指令的功能及尋址方式(1)算術(shù)邏輯運(yùn)算指令(rs1)OP(rs2)→rd(當(dāng)i=0時(shí))本指令將rs1,rs2的內(nèi)容按操作碼所規(guī)定的操作進(jìn)行運(yùn)算后將結(jié)果送rd。(2)取數(shù)/存數(shù)指令

LOAD:存儲(chǔ)器→rd;STORE:rd→存儲(chǔ)器在RISC中,只有LOAD/STORE指令訪問(wèn)存儲(chǔ)器(3)控制轉(zhuǎn)移類指令此類指令改變PC值,SPARC有五種控制轉(zhuǎn)移指令:①條件轉(zhuǎn)移(Branch);

②轉(zhuǎn)移并連接(JMPL)③調(diào)用(CALL);

④陷阱(trap);

⑤從trap程序返回(RETT)(4)讀/寫專用寄存器指令

SPARC有四個(gè)專用寄存器(PSR,Y,WIM,TBR),其中PSR稱為程序狀態(tài)寄存器。三.指令編碼示例1、假設(shè)某計(jì)算機(jī)支持以下九條指令(1)ADDR0,R1;(R0)+(R1)→R0、Cy

ADDR1,10H;10H+(R1)→R1、Cy(2)SUBR1,R0;(R1)-(R0)→R1

SUBR1,10H;(R1)-10H→R1(3)MOVR0,R1;(R1)→R0

MOVR0,10H;10H→R0

(4)INR0,01H;從01端口中輸入數(shù)據(jù)到R0

OUT02H,R0;將R0寄存器的內(nèi)容傳送到02H端口(5)RRR0,1;將R0寄存器中的內(nèi)容右移一位2、指令編碼假設(shè)某機(jī)器的字長(zhǎng)是八位,支持(1)中所列的指令:指令是二地址指令,源操作數(shù)可采用兩種尋址方式:寄存器尋址(R0、R1)和立即尋址;目標(biāo)操作數(shù)可采用寄存器和直接兩種尋址方式。請(qǐng)為上述九條機(jī)器指令設(shè)計(jì)可行的代碼方案。解:采用定長(zhǎng)編碼方案,指令格式如下:76543210操作碼=0000表示ADD=0001表示SUB=0010表示MOV=0011表示IN=0100表示OUT=0101表示RR目標(biāo)操作數(shù)尋址方式:0—直接尋址式; 1—寄存器尋址目標(biāo)寄存器編號(hào)源操作數(shù)尋址方式:0—立即數(shù)尋址1—寄存器尋址源寄存器編號(hào)ADDR0,R1ADDR1,10H九條指令的機(jī)器代碼如下:操作碼目標(biāo)尋址源尋址匯編指令A(yù)DDR0,R1ADDR1,10HSUBR1,R0SUBR1,10HMOVR0,R1MOVR0,10HINR0,01HOUT02H,R0RRR0,1000010110000110*0001000000011110000

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論