計(jì)算機(jī)組成與原理 第7章系統(tǒng)指令_第1頁(yè)
計(jì)算機(jī)組成與原理 第7章系統(tǒng)指令_第2頁(yè)
計(jì)算機(jī)組成與原理 第7章系統(tǒng)指令_第3頁(yè)
計(jì)算機(jī)組成與原理 第7章系統(tǒng)指令_第4頁(yè)
計(jì)算機(jī)組成與原理 第7章系統(tǒng)指令_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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)介

計(jì)算機(jī)組成朦理

第七章播令案疣

7.1指令概述

?用計(jì)算機(jī)解題時(shí),一般都要編制程序,程序既可用高級(jí)語(yǔ)

言編寫(xiě),亦可用機(jī)器語(yǔ)言編寫(xiě);

?但計(jì)算機(jī)只能夠識(shí)別和執(zhí)行用機(jī)器語(yǔ)言編寫(xiě)的程序;

?各種高級(jí)語(yǔ)言編寫(xiě)的應(yīng)用程序,最終都要翻譯成機(jī)器語(yǔ)言

來(lái)執(zhí)行。

?機(jī)器語(yǔ)言是由一系列的指令(語(yǔ)句)組成的;

?指令的格式就是機(jī)器語(yǔ)言的語(yǔ)法;

?每條指令規(guī)定機(jī)器完成一定的功能。

?一臺(tái)計(jì)算機(jī)的所有的指令集合稱為該機(jī)的指令系統(tǒng)或指令

集。它是程序工作者編制程序的基本依據(jù),也是進(jìn)行計(jì)算機(jī)

邏輯設(shè)計(jì)的基本依據(jù)。

7.2指令系統(tǒng)的發(fā)展與性能要求

7.2.1指令系統(tǒng)的發(fā)展

計(jì)算機(jī)的程序是由一系列機(jī)器指令組成的。

本章所討論的指令,是機(jī)器指令。

1.指令系統(tǒng)

指令系統(tǒng)是表征一臺(tái)計(jì)算機(jī)性能的重要

因素,它的格式與功能不僅直接影響到機(jī)器

的硬件結(jié)構(gòu))而且也直接影響到系統(tǒng)軟件,

影響到機(jī)器的適用范圍。

2.指令系統(tǒng)的發(fā)展

(1)系列計(jì)算機(jī)同祖'“■件"‘貪用’一-

系列計(jì)算機(jī)是指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一

個(gè)系列的各種型號(hào)的計(jì)算機(jī)。其必要條件是同一系列的各機(jī)

種有共同的指令集.而且新推出機(jī)種的指令系統(tǒng)一定應(yīng)包含

所有舊機(jī)種的全部指令,即實(shí)現(xiàn)“向上兼容I這樣,舊機(jī)種

上運(yùn)行的各種軟件可以不加任何修改便可在新機(jī)種上運(yùn)行,

大大減少了軟件開(kāi)發(fā)費(fèi)用。系列機(jī)解決了各機(jī)種的軟件兼容

問(wèn)題。

(2)指令系統(tǒng)結(jié)構(gòu)

從計(jì)算機(jī)指令系統(tǒng)的角度看當(dāng)前的計(jì)算機(jī)指令系統(tǒng)結(jié)構(gòu)

分為兩大類(lèi):

?復(fù)雜指令集計(jì)算機(jī)(CISC)_____I;'泣巾I

?精簡(jiǎn)指令集計(jì)算機(jī)(RISC)

70年代末^^

大多數(shù)計(jì)算機(jī)的指令系統(tǒng)多達(dá)幾百

條。我們稱這些計(jì)算機(jī)為復(fù)雜指令系統(tǒng)

計(jì)算機(jī)(CISC)。

但是如此龐大的指令系統(tǒng)難以保證

正確性,不易調(diào)試維護(hù),造成硬件資源

浪費(fèi)。為此人們又提出了易于采用

VLSI技術(shù)實(shí)現(xiàn)的精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)

(RISC)o

7.3指令格式

指令由操作碼和地址碼兩部分組成,它的基本格式如下:|

操作碼地址碼

1.操作碼

?操作碼是說(shuō)明指令操作性質(zhì)的二進(jìn)制數(shù)代碼。

?操作碼所占的二進(jìn)制位數(shù)決定了一臺(tái)計(jì)算機(jī)所能允許的指令

條數(shù)。

例如,操作碼占用六位二進(jìn)制碼時(shí),這臺(tái)計(jì)算機(jī)最多允許有:

26=64條指令

操作碼字段分兩種:

(1)固定長(zhǎng)度操作碼

固定長(zhǎng)度操作碼是指操作碼所占的二進(jìn)制位數(shù)固定不變,而

且集中放在指令字的一個(gè)字段中。

這種格式有利于簡(jiǎn)化硬件設(shè)計(jì),減少指令譯碼時(shí)間,廣泛

用于字長(zhǎng)較長(zhǎng)的大、中型計(jì)算機(jī)和超級(jí)小型計(jì)算機(jī)中。

例如IBM370和VAX-H系列機(jī)中,操作碼的長(zhǎng)度都是8位,

可表示256條指令。

⑵可變長(zhǎng)度操作碼

可變長(zhǎng)度操作碼是操作碼擴(kuò)展技術(shù)的應(yīng)用,即操作碼的

長(zhǎng)度是可變的,且分散地放在指令的不同字段中。這種格式有

利于壓縮程序中操作碼的平均長(zhǎng)度,在字長(zhǎng)較短的微型機(jī)中被

廣泛應(yīng)用。如:PDP-11,INTEL8086/80386等,其操作碼的

長(zhǎng)度均是可變的。

o2?Z>MLTil

Y單地址指令又稱為單操作數(shù)指令。通常這種指令通常

-以運(yùn)算器中累加寄存器AC中的數(shù)據(jù)為被操作數(shù),指令字的

地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄

.“二地址指令常稱為雙操作數(shù)指令,它的兩個(gè)地址碼

j字段分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中或運(yùn)算

器中通用寄存器的地址,A1作存放操作結(jié)果的地址。

〈士(A1)OP(A2)-A1

Ldk,J

//M|A2IA3|三地址指令

零地址指令的指令字中只有操作碼,而沒(méi)有地.

、址碼。

半地址)百步

零地址指令

③二地址指令。二地址指令常稱雙操作數(shù)指令,指令中給出

兩個(gè)地址碼字段A1和A2,分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中

或運(yùn)算器通用寄存器的地址,其中地址A1兼作存放操作結(jié)果的

地址。(Al)OP(A2)-A1如:ADDRI,R2

④三地址指令

三地址指令字中有二個(gè)源操作數(shù)地址Al,A2和一個(gè)目的操

作數(shù)地址A3。

(Al)OP(A2)-A3如:ADDRI,R2,R3

?在二地址指令格式中,從操作數(shù)的物理位置來(lái)說(shuō),又可歸

結(jié)為三種類(lèi)型:

①(SS)型指令一存儲(chǔ)器-存儲(chǔ)器型指令,為訪問(wèn)存儲(chǔ)器

的指令格式;

②(RR)型指令一寄存器-寄存器型指令,為訪問(wèn)寄存器

的指令格式;

③(RS)型指令一寄存器-存儲(chǔ)器型指令,用于存儲(chǔ)器與

寄存器交換信息。

3.擴(kuò)展操作碼技術(shù)

操作碼的位數(shù)隨地址數(shù)的減少而增加

|OPA】A2A3

0000AlA2A3

0001A1A2A3

4位操作碼????15條三地址指令

liio'A、入2鼠

im_oooo_ZA?

11110001A;A;

8位操作碼????15條二地址指令

liuliio42鼠

mimiooooA,

111111110001A;

12位操作碼????15條一地址指令

liuliiiliio入a

1111111111110000

1111111111110001

????條零地址指令

16位操作碼????16

liiiliiiliiiliii

7.2.2指令長(zhǎng)度

例如,IBM370系列,它的指令格式有16位(半字)

的,有32位(單字)的,還有48位(一個(gè)半字)的。

在Pentium系列機(jī)中,指令格式也是可變的:有8位、

16位、32位、64位不等。

使用多字長(zhǎng)指令,目的在于提供足夠的地址位來(lái)

解決訪問(wèn)內(nèi)存任何單元的尋址問(wèn)題。其主要缺點(diǎn)是必

須兩次或多次訪問(wèn)內(nèi)存以取出一整條指令,降低了

CPU的運(yùn)算速度,又占用了更多的存儲(chǔ)空間。(當(dāng)然,

若采用指令流水線、多體交叉存儲(chǔ)等技術(shù),可以較好

地4牟決at匕問(wèn)題)

令。

[等長(zhǎng)指令字結(jié)構(gòu)]:各種指令字長(zhǎng)

度是相等的。這種指令字結(jié)構(gòu)簡(jiǎn)單,

且指令字長(zhǎng)度是不變的。

[變長(zhǎng)指令字結(jié)構(gòu)]:指令字的長(zhǎng)度

隨指令功能而變化。這種指令字結(jié)

構(gòu)靈活,能充分利用指令長(zhǎng)度,但

指令的譯碼及控制較復(fù)雜。

7.3指令和數(shù)據(jù)的尋址方式

尋址方式一當(dāng)采用地址指定方式時(shí),

形成操作數(shù)的地址或指令地址的方式)稱

為尋址方式。尋址方式分為兩類(lèi),即指

令尋址方式和數(shù)據(jù)尋址方式。

7.3.1指令尋址方式

.順序?qū)ぶ贩绞揭恢噶钪饤l順序執(zhí)行

,由PC+1-PC控制;

,跳躍尋址方式--程序執(zhí)行轉(zhuǎn)移指令)下

條指令的地址不再是由PC給出,而是由本

條指令給出。

尋址方式確定本條指令的操作數(shù)地址

下一條欲執(zhí)行指令的指令地址

T旨令尋址

尋址方式<

一數(shù)據(jù)尋址

內(nèi)存

/一,

程序計(jì)數(shù)器F

指令地址指令內(nèi)容

0LDA」00

1ADD201

2INC

3IMP6

4LDA206

5SVB207

6INC

,_____Z_________LDA___2QQ_7

(a)指令的順序?qū)ぶ贩绞?/p>

然后程序計(jì)數(shù)耀加1,執(zhí)行下1條指令;如此進(jìn)行循環(huán).

程序計(jì)數(shù)器(PC)

\PC=3

PC=6

⑹指令的跳躍尋址方式

7.3.2操作數(shù)類(lèi)型和操作種類(lèi)

1、操作數(shù)類(lèi)型

地址無(wú)符號(hào)整數(shù)

數(shù)字定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù)

字符ASCII

邏輯數(shù)邏輯運(yùn)算

2、數(shù)據(jù)在存儲(chǔ)器中的存放方式

字地址低字節(jié)字地址低字節(jié)

32100123

76544567

字地址為低字節(jié)地址_字成址為高字節(jié)地址

存儲(chǔ)器中的數(shù)據(jù)存放(存儲(chǔ)字長(zhǎng)為32位)

邊界對(duì)準(zhǔn)地址(十進(jìn)制)

字(地址0)0

字(地址4)4

字節(jié)(地址工工)字節(jié)(地址10)字節(jié)(地址9)字節(jié)(地址8)8

字節(jié)(地址15)字節(jié)(地址14)字節(jié)(地址13)字節(jié)(地址12)12

半字(地址18)/半字(地址16)/16

半字(地址22)/半字(地址20)/20J

241

雙字(地址24)上

雙字28

32

雙字(地址32)上

雙字36

|邊界未對(duì)準(zhǔn)地址(十進(jìn)制)

__________半字(地址0)|0

字節(jié)(地址7)字節(jié)(地址6)4

半字(地址10)半字(地址8)|8

7.3.3數(shù)據(jù)尋址

操作碼尋址特征形式地址A

形式地址指令字中的地址

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

約定指令字長(zhǎng)=存儲(chǔ)字長(zhǎng)=機(jī)器字長(zhǎng)

所謂操作數(shù)尋址方式,就是形成操作數(shù)

有效地址的方法。

例如:某單地址指令的結(jié)構(gòu)如下所示,其中用

X,I,D各字段組成該指令的操作數(shù)地址。

一操作碼字段----------------操作數(shù)字段

即:指令中操作數(shù)字段的地址碼,是由形式地址

D和尋址方式特征位X、I等組合形成。

1.立即尋址

形式地址A就是操作數(shù)

立即尋址特征

-A_

OP#A

V

立即數(shù)可正可負(fù)補(bǔ)碼

?指令執(zhí)行階段不訪存

?A的位數(shù)限制了立即數(shù)的范圍

2.隱含尋址。在指令中并不直接給出操作數(shù)

的地址)而是隱含著操作數(shù)的地址。例:ADD

B;另一個(gè)操作數(shù)的地址即隱含為累加器AC

4.間接尋址

指令

OP

(b)間接尋址方式

它從指令地址字段中的形式地址D中獲得操作數(shù)地址.

網(wǎng)次歷行,彭啊福令雙仃逑皮,現(xiàn)在匕小太便用。

例如:

5寄存器尋址方式和寄存器間接尋址方式

①寄存器直接尋址

如果指令的地址碼部分給出的是某通用寄存器編號(hào)燈,1

寄存器中存放著操作數(shù),則稱為寄存器直接尋址。

例如:執(zhí)行ADD仆指令,

該指令說(shuō)明N是操作數(shù)的有效地址,從1中取出操作數(shù)

與累加器的內(nèi)容相加,其結(jié)果放在累加器中。

尋址特征寄存器號(hào)

ADDRi

ARi操作數(shù)

②寄存器間接尋址

寄存器間接尋址,是指令中地址字段所指的寄存器中存放

的是操作數(shù)的地址。

例如:執(zhí)行ADDQRj指令時(shí),說(shuō)明%不是操作數(shù)的有效地址,而

是存放操作有效地址的寄存器號(hào)。

操作碼尋址特勺寄存器號(hào)內(nèi)存

ADD@[

R.操作數(shù)地址

'--------A操作數(shù)

6.相對(duì)尋址

把程序計(jì)數(shù)器PC的內(nèi)容加上指令格式中的形式地址D而形成

操作數(shù)的有效地址。

E=(PC)±D

優(yōu)點(diǎn):相對(duì)于當(dāng)前指令地址進(jìn)行浮動(dòng)。

傷I:INC[PC+200H]

這是一條加1指令,指令有效地址E=(PC)+200H=2200H

相對(duì)地址為1035。這個(gè)地址是不固定的,隨PC的值變化而變

化,并且相對(duì)地差一個(gè)固定值。因此,無(wú)論程序裝入存儲(chǔ)器

的任何區(qū)域,只要這個(gè)差值不變,程序均能正確運(yùn)行。由于

程序在內(nèi)存空間里是浮動(dòng)的,又稱浮動(dòng)尋址。

7.基址尋址方式

修CPU中基址寄存器Bx的內(nèi)容加上指令格式中的形式地址而

形成操作數(shù)的有效地址。

E=(Bx)±D如:INC[Bx+300H]

這是一條加1指令,指令有效地址E=(Bx)+300H=0380H

指令

操作碼X2300H

存儲(chǔ)器

基址寄存器Hx

80H0380H操作數(shù)

8.變址尋址方式

把CPU中某個(gè)變值寄存器Rx的內(nèi)容與偏移量D相加來(lái)形成操

作數(shù)的有效地址。

E=(Rx)±D如:INC[Rx+300H]

這是一條加1指令,指令有效地址E=(Rx)+300H=0380H

指令

操作碼|X3|SOPH

存儲(chǔ)騫

變址寄存春1

AAH[------08AAH

操作教

☆變址尋址和基址尋址尋址方法十分類(lèi)似,但用途不同:

?變址尋址:主要便于數(shù)組訪問(wèn)

?基址尋址:可擴(kuò)大尋址范圍,可實(shí)現(xiàn)程序浮動(dòng)。

例2:間址、變址尋址方式

INC[(Rx)+(100H)]

這是一條加1指令,指令有效地址:E=(Rx)+(100H)=1260H

9.段尋址方式

150

邏輯地址

存儲(chǔ)器物理地址

故物理地川可表示的空間為1M單位.

PDP/11計(jì)算機(jī)CPU中有8個(gè)程序可訪問(wèn)的寄:

向器,其編號(hào)為REU卜7乍為程序計(jì)數(shù)器0-

廠指令中有3位用于尋址方式選擇,可指示8

種尋址方式。此外還有4種指令計(jì)數(shù)器型尋址方

作式屬于隱含尋址方式,它們以訪問(wèn)R7(程序計(jì)

乜口數(shù)器)為標(biāo)志。

151211109876543210

源地址--------------目標(biāo)地址

各種操作數(shù)尋址方式及尋址特征位的編號(hào),

見(jiàn)表:

尋址名尋址匯編

有效地址E說(shuō)明

稱特征值格式

寄存器寄存器Rn的內(nèi)容是操作數(shù),

000E=RRn

型相當(dāng)于直接地址

寄存器的內(nèi)容是操作數(shù)

E=(R);Rn

直自增型010(Rn)+地址,然后遞增寄存器內(nèi)

(R)+2-R容

(R)-2-R;先遞減寄存器Rn的內(nèi)容,

自減型100-(Rn)

E=(R)然后作為操作數(shù)的地址

寄存器Rn的內(nèi)容與本指令

(PC)+2-PC;

變址型110X(Rn)下一單元所存的數(shù)相加,

E=((PC))+(R)

作為操作數(shù)的地址

各種操作數(shù)尋址方式及尋址特征位的編號(hào),

見(jiàn)表:

尋址名尋址匯編格

有效地址E說(shuō)明

稱特征值式

寄存器Rn的內(nèi)容作為操

寄存器QRn或

001E=(R)作數(shù)地址,相當(dāng)于寄存

(Rn)

間接器間接地址

寄存器Rn的內(nèi)容作為操

自增間E=((R));

間011o)(Rn)+作數(shù)地址的地址,然后

接(R)+2-R

寄存器Rn的內(nèi)容遞減

接寄存器Rn的內(nèi)容先遞減,

自減間(R)-2-R;

101o)-(Rn)然后作為操作數(shù)地址的

接E=((R))

型地址

指令下一個(gè)單元的內(nèi)容

(PC)+2-PC;E

變址間與變址寄存器Rn所指示

111=((R))+((PC)o)X(Rn)

接的單元內(nèi)容相加是操作

)

數(shù)的地址

序號(hào)尋址方式名稱有效地址E算法說(shuō)明

(1)立即操作數(shù)在指令中

操作數(shù)在寄存器中,

(2)寄存器

指令給出寄存器號(hào)

(3)直接E=DispDisp為偏移量

(4)基址E=(RB)RB為基址寄存器

(5)基址+偏移量E=(RB)+Disp

力為變址寄存器,S為

(6)比例變址+偏移量E=(R[)xS+Disp

比例因子

(7)基址+變址+偏移E=(I<B)+(R[)+Disp

基址+比例變址+

(8)E=(RB)+(R1)xS+Disp

偏移量

PC為程序計(jì)數(shù)器或當(dāng)

(9)相對(duì)E=(PC)+Disp前指令指針寄存器

7.5典型指令

7.5.1指令的分類(lèi)

一個(gè)較完善的指令系統(tǒng)應(yīng)當(dāng)包括:

?數(shù)據(jù)傳送類(lèi)指令:例)move、load、store等

?算術(shù)運(yùn)算類(lèi)指令:例)add、sub、mult、div、comp等

.移位操作類(lèi)型

?邏輯運(yùn)算類(lèi)指令:例)and、or、xor、not等

?程序控制類(lèi)指令:例)jump、branch、jsr、ret、int等

?輸入輸出指令:例)in、out等

-字符串類(lèi)指令:例)如alpha中cmpbge、inswh、extbl等

?系統(tǒng)控制類(lèi)指令:例)push、pop、test等

1.數(shù)據(jù)傳送類(lèi)指令

這類(lèi)指令的功能是實(shí)現(xiàn)寄存器與寄存器,寄存器與存

儲(chǔ)單元以及存儲(chǔ)單元與存儲(chǔ)單元之間的數(shù)據(jù)傳送。

數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、

成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作

指令等等。

2.算術(shù)運(yùn)算指令

這類(lèi)指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、

減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較

指令,十進(jìn)制加、減運(yùn)算指令等。這類(lèi)指令主要用于定點(diǎn)或浮

點(diǎn)的算術(shù)運(yùn)算。大型機(jī)(如IBM370機(jī)、國(guó)產(chǎn)銀河機(jī)、CRAY-1

機(jī)、CDC的STAR-100機(jī)等)中還設(shè)置有向量運(yùn)算指令,可直

接對(duì)整個(gè)向量或矩陣進(jìn)行求和、求積運(yùn)算。

3.邏輯運(yùn)算指令

這類(lèi)指令包括邏輯加、邏輯乘、邏輯比較、測(cè)等指令、

按位加、邏輯移位等指令,主要用于無(wú)符號(hào)數(shù)的位操作、代

碼的轉(zhuǎn)換、判斷及運(yùn)算。移位指令用來(lái)對(duì)寄存器的內(nèi)容實(shí)現(xiàn)

左移、右移或循環(huán)移位。

4.程序控制指令

程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時(shí),有時(shí)機(jī)器執(zhí)行

到某條指令時(shí),出現(xiàn)了幾種不同結(jié)果,這時(shí)機(jī)器必須執(zhí)行一條

轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來(lái)執(zhí)行的

順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。除各種條件轉(zhuǎn)移指令

外,還有無(wú)條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、

中斷返回指令等。轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用直接尋址和

相對(duì)尋址方式去確定。

轉(zhuǎn)子指令是轉(zhuǎn)向本指令操作地址所指出的子程序入口,并將原

程序中下一條指令地址存入內(nèi)存某單元(或指定的某個(gè)寄存器)

中,以便為返回主程序時(shí)提供返回地址。

5.輸入輸出指令

輸入輸出指令主要用來(lái)啟動(dòng)外圍設(shè)備,檢查測(cè)試外圍設(shè)備

的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)

備之間的信息傳送。

6.字符串處理指令

字符串處理指令是一種非數(shù)值處理指令,一般包括字符串

傳送、字符串轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的

字符串)、字符串替換(把某一字符串用另一字符串替換)等。

這類(lèi)指令在文字編輯中對(duì)大量字符串進(jìn)行處理。

7.特權(quán)指令

特權(quán)指令是指具有特殊權(quán)限的指令。這類(lèi)指令只用于操作

系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。在多用

戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系

統(tǒng)資源的分配和管理。

8.其他指令

除以上各類(lèi)指令外,還有狀態(tài)寄存器置位、復(fù)位指令、測(cè)

試指令、暫停指令,空操作指令,以及其他一些系統(tǒng)控制用的

特殊指令。

例題1.某機(jī)指令格式如下

OPXD

151O987O

其中X為尋址特征位,且X=0時(shí)不變址;X=1時(shí)用變

址寄存器X1進(jìn)行變址;X=2時(shí)用變址寄存器X2進(jìn)行

變址;X=3時(shí)相對(duì)尋址。設(shè)(PC)=1234H,(Xi)

=1122H,請(qǐng)確定下列指令的有效地址(均用十六

進(jìn)制表示)H表示十六進(jìn)制);

(l)4420H(2)2244H(3)1322H(4)3521H

(5)6723H

解:⑴指令4420H展開(kāi)為:O1OOO1O000100000B

X=00不變址,有效地址=口=002011

(2)指令2244H展開(kāi)為:即10叫以01000100B

X=10用變址寄存器X2匪石陵耳青凝面t=(X2)

+D=1122H+44H=1166H

⑶指令1322H展開(kāi)為:財(cái)]叫口00100010B

X=ll為相對(duì)尋址,有效地址=(PC)+D=1234H+

22H=1256H

(4)指令3521H展開(kāi)為:則101?00100001B

X=01用變址寄存器X1迸石變£有雙而i=(Xi)

+D=0037H+21H=OO58H

(5)指令6723H展開(kāi)為:里則」100100011B

X=ll為相對(duì)尋址,有效忠句二"c麗=而411+23H

=1257H

例題2:假設(shè)機(jī)器字長(zhǎng)16位,主存容量為

128K字節(jié),指令字長(zhǎng)度為16位或32位,共

有128條指令,設(shè)計(jì)計(jì)算機(jī)指令格式,要求

有直接、立即數(shù)、相對(duì)、基值、間接、變

址六種尋址方式。

解:由已知條件,機(jī)器字長(zhǎng)16位,主存容量(

128KB/16=64K字,因止匕MAR=16位,共128條才旨

令,故0P字段占7位。采用單字長(zhǎng)和雙字長(zhǎng)

兩種指令格式,其中單字長(zhǎng)指令用于算術(shù)邏

輯和I/O類(lèi)指令,雙字長(zhǎng)用于訪問(wèn)主存的指

令。

159:86543210

OPRi

159865320

OP

D

尋址方式由尋址模式X定義如下:

X=000直接尋址E=D(64K)

X=001立即數(shù)D=操作數(shù)

X=010相對(duì)尋址E=PC+D,PC=16位

X=011基值尋址E=Rb+D,Rb=16位

X=100間接尋址E=(D)

X=101變址尋址E=+D,=16位

RAYARY

7.5.2指令格式舉例

1、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素

(1).指令系統(tǒng)的兼容性(向上兼容)

(2).其他因素

操作類(lèi)型包括指令個(gè)數(shù)及操作的難易程度

數(shù)據(jù)類(lèi)型

指令格式指令字長(zhǎng)、操作碼位數(shù)

尋址方式、是否采用擴(kuò)展操作碼

地址碼位數(shù)、地址個(gè)數(shù)

尋址方式

寄存器個(gè)數(shù)

2、指令格式舉例

(1)PDP-8指令字長(zhǎng)固定12位

訪存類(lèi)指令操作碼間頁(yè)地址碼

0234511

I/O類(lèi)指令110設(shè)備操作碼

0238911

寄存器類(lèi)指令HI輔助操作碼

02311

(2)PDP-11

指令字長(zhǎng)有16位、32位、48位三種

OP-CODE零地址(16位)

16擴(kuò)展操作碼技術(shù)

OP-CODE目的地址一地址(16位)

106

OP源地址目的地址二地址R-R(16位)

466

OP目的地址存儲(chǔ)器地址二地址R-M(32位

二地址M—M(48位)

OP源地址目的地址存儲(chǔ)器地址1存儲(chǔ)器地址2

4661616

(3)IBM360

RR

OPR二地址R一R

格式Ri2

844

IX二地址R一M

OPRiXBD

,式基址加變址尋址

844412

RS三地址R一M

OPBD

珞式RiR3

844412基址尋址

SIOPIBD立即數(shù)一M

格式

88412基址尋址

SS

OPLBiDiBD

格式22

88412412

^—TVT

(4)Intel8086

(1)指令字長(zhǎng)1?6個(gè)字節(jié)

INCAX1字節(jié)

MOVWORDPTR[0204],0138H6字節(jié)

⑵地址格式

零地址NOP1字節(jié)

一地址CALL段間調(diào)用5字節(jié)

CALL段內(nèi)調(diào)用3字節(jié)

二地址ADDAX,BX2字節(jié)寄存器一寄存器

ADDAX,3048H3字節(jié)寄存器一立即數(shù)

ADDAX,[3048H]4字節(jié)寄存器一存儲(chǔ)器

7.5.3精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)

1.RISC產(chǎn)生的時(shí)代背景

從計(jì)算機(jī)的發(fā)展過(guò)程來(lái)看,指令系統(tǒng)是隨著計(jì)算機(jī)體系結(jié)

構(gòu)的完善聯(lián)系起來(lái)的。

?早期的計(jì)算機(jī)結(jié)構(gòu)簡(jiǎn)單,指令條數(shù)少,指令系統(tǒng)功能弱,

計(jì)算機(jī)的性能較差。

?隨著VLSI技術(shù)的迅速發(fā)展,硬件成本不斷下降,軟件成

本不斷上升,促進(jìn)人們?cè)谥噶钕到y(tǒng)中增加更多的指令和更

復(fù)雜的指令,以適應(yīng)不同應(yīng)用領(lǐng)域的需要。

?特別是系列機(jī)問(wèn)世之后,為了能做到程序兼容,新設(shè)機(jī)

型或高檔機(jī)除了要繼承老機(jī)器的指令系統(tǒng)中的全部指令外,

還要增加若干新的指令,從而導(dǎo)致同一系列計(jì)算機(jī)的指令

系統(tǒng)越來(lái)越復(fù)雜,機(jī)器結(jié)構(gòu)也越來(lái)越復(fù)雜。

對(duì)CIsc指令系統(tǒng)所作的運(yùn)行統(tǒng)計(jì)分析表明,各種指令使

用頻率相差懸殊,常用的較為簡(jiǎn)單的指令,僅占指令總數(shù)的

20%,但在程序中使用的頻率卻占80%。下表是HP公司研究

了IBM370計(jì)算機(jī)的高級(jí)語(yǔ)言運(yùn)行情況后所得到的統(tǒng)計(jì)數(shù)據(jù)。

指令類(lèi)別COBOLFORTRANPASCAL

轉(zhuǎn)移24.2%18.0%18.4%

1邏輯操作14.6%8.1%9.9%

存數(shù)取數(shù)40.2%48.7%54.0%

存儲(chǔ)單元送存儲(chǔ)單元12.4%2.1%3.8%

整數(shù)運(yùn)算6.4%11.0%7.0%

浮點(diǎn)運(yùn)算0.0%11.9%6.8%

十進(jìn)制運(yùn)算1.6%0.0%0.0%

其它0.6%0.2%0.1%

根據(jù)上述分析情況,國(guó)外一些計(jì)算機(jī)公司和大學(xué)開(kāi)展了

對(duì)指令系統(tǒng)合理性的研究,1975年IBM公司的JohnCocke提出

了精簡(jiǎn)指令系統(tǒng)的想法,后來(lái)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔