計算機組成原理A_第1頁
計算機組成原理A_第2頁
計算機組成原理A_第3頁
計算機組成原理A_第4頁
計算機組成原理A_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成原理A

西南交通大學

信息科學與技術學院

2006年2月

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

§3.1指令格式

§3.2指令類型

§3.3尋址技術

§3.4堆棧與堆棧操作

§3.5指令系統(tǒng)實例

/占總工、[a吟“、/.不若HIKI▲,,"田

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

本章重點:

1.理解指令的基本格式和基本操作種類,理解擴展操

作碼方法;

2,掌握基本數據尋址方式和有效地址的確定方法,搞

清楚每一種基本尋址方式的特點;

3.存儲器堆棧的概念及堆棧的進、出棧操作

金,K士大]京金白工、IX,,、A口+HTPRA,,土占4

如u早口曰q不可L

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

指令:執(zhí)行某種基本操作的命令(如:力口、減)。

指令是計算機硬件能夠識別并直接執(zhí)行的操作命令,

指示計算機硬件完成指定的基本操作。

程序:由一系列有序指令構成。

指令系統(tǒng):一臺計算機能執(zhí)行的全部的指令的集合。

屋”指令系統(tǒng)是軟件和硬件的主要界面。

是設計計算機硬件的一個基本依據,

是軟件設計者則編制程序的基礎。

如u早口曰q不可L

§3.1指令格式

3.1.1機器指令的基本格式

0P:操作碼字段,指出所要進行的操作;

A:地址碼字段,指出操作數和操作結果的地址。

指令的長度:

1)定長.指令系統(tǒng)中所有的指令其長度都一樣。

2)變長.各指令的長度可以不同。

如u早口曰q不可L

3.1.2地址碼結構

地址碼字段可以是單地址、雙地址、三地址或零地址等格式。

單地址指令IOP

如:ACHAC)0P(A)AC為累加器,隱含方式

A-OP(A)

■■■■■■■■■■■■■■I■■■■■■■■■■■■■■!■■■!

■■■■■■■■■■■■■■I■■■■■■■■■■■■■■!■■■■

■■■■■■'1■■■■■■■)■■■■■■1■■■■■■■!■■■■

■■■■■7.1?■■■■■■!■■■■■FA?■■■■■■!■■■■

■■■■?,??■■■■

多地址指令OP■■■■■■■?■■■■■■)■■■■■■■■■■■■■■I■■■■

如:AqVHAJOPfA^

零地址指令:操作數在棧頂和次棧頂中,或隱含指定。

“、/.不若HiW▲,,"田

如u早口曰q不可L

例:完成(X)+(Y)-Z的操作

用一條三地址指令即可……

ADDX,Y,Z;

用二條二地址指令實現--

ADDX,Y;(X)+(Y)-X

MOVZ,X;(X)-Z

用三條一地址指令實現……

LDAX;(X)-ACLDA意為LoadAC

ADDY;(AC)+(Y)-AC

STAZ;(X)-ZSTA意為StoreAC

“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

地址段&的長度(N)與存儲器容量(M)的關系:

N

M=2IOPML......................

i內存地址?

存在問題:①地址段位數增長一指令過長;

②程序設計的靈活性差。

???需要采用好的尋址技術!

“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

3.1.3指令的操作碼OP|A

1.規(guī)整型(定長操作碼、變長指令碼)

n位操作碼最多可表示2n種計算機指令,

特點:操作碼字段規(guī)整,譯碼簡單、迅速。

指令的長度隨操作數個數的不同而變化。

(適于大、中、小型機)

“、I.々4r¥nActr-P-HEA”生田

如u早口曰q不可L

例:IBM370機的指令格式

指令可分為幾種不同的長度不論指令的長度為多少位,

其中操作碼字段一律都是8位。

如u早口曰q不可L

2,非規(guī)整型(變長操作碼、定長指令碼)

可采用擴展操作碼技術。

0000xxxxxxxxxxxx)

0001xxxxxxxxxxxxI4位操作碼

……|15條三地址指令

1110XXXXXXXXXXXXJ

11110000xxxxxxxx\

11110001xxxxxxxxI8位操作碼

……I15條二地址指令

11111110XXXXXXXXJ

111111110000xxxx

111111110001xxxx12位操作碼

??????15條一地址指令

111111111110xxxx

1111111111110000

mimimioooi16位操作碼

??????16條零地址指令

111111111111nil

如u早口曰q不可L

例:PDP-11機的指令格式

士大?吊—占白工、【小e“、/.不若r/〃/Z7T>HiW▲,,"田

如u早口曰q不可L

§3.2指令類型—A1

與機器的用途、性能的總體要求有關。

通用型計算機其基本的操作種類有:

>數據傳送類指令

>運算類指令

>程序控制類指令

>輸入輸出類指令(非必備)

其它種類指令還有:

>串操作指令

>數據轉換指令

>處理機控制指令

>特權指令

如u早口曰q不可L

§3.2指令類型

3.2.1數據傳送類指令

1.一般傳送指令(復制)

把數據從源地址復制到目的地址中去。

常用助記符:MOV,LOAD(LD),STORE

類型:寄存器一寄存器

寄存器一主存

主存一寄存器

主存一主存

2,堆棧操作指令

進棧PUSH、出棧POP,在程序中它倆往往成對出現。

3.數據交換指令

常見的有字節(jié)交換、字交換、高低半字節(jié)之間交換等。

常用助記符:XCHG

如u早口曰q不可L

3.2.2運算類指令

1.算術運算類指令

+,一,X,/,加1,減1,向量運算等。

ADD,SUB,MUL,DIV,INC,DEC,...(各種運算不一定都具備)

2.邏輯運算類指令

與、或、取反、異或等(AND,OR,NOT,XOR,…)。

3.移位類指令

算術移位(x2,+2)

還有邏輯移位、循環(huán)移位等。

注:算邏運算除了產生運算結果外,還產生一些狀態(tài)信息記錄在

狀態(tài)寄存器PSW的標志位中。

例如:進位、溢出、全零、正負和奇偶標志等。

如u早口曰q不可L

3.2.3程序控制類指令

1.轉移指令

(1)無條件轉移JMp"A

功能:PC-A(PC為程序計數器)

(2)條件轉移

如:JCA(進位位標志C=1時轉)

2.子程序調用指令轉子時要先保存好

CALLSUB_A當前的PC值(通常是PC

值壓入堆棧),然后再

PC-SUB_A;

3.返回指令

返回時要恢復PC,

返回主程序

RET把棧中原PC的值彈出送

RETI中斷返回給PC。

鼠一K士我?不一必在白上一什屈?!?、/.不若HiW▲,,"田

如u早口曰q不可L

3.2.4輸入輸出類指令

實現CPU與/0設備之間的信息傳送。

'總]注:輸入、輸出都是對CPU而言的。

例如輸入,指從I/O到CPU的數據傳送。

ML7K士大濟―小金白a1什曲“、/.不若r/〃/Z7HIKI▲,,"田

如u早口曰q不可L

3.2.4輸入輸出類指令

輸入指令如:

INA,端口地址;A是CPU中的寄存器

輸出指令如:

OUT端口地址,A;A是CPU中的寄存器

在I/0設備獨立編址的計算機中,指令系統(tǒng)設有專門的輸入/

輸出指令(IN/OUT);而在I/O設備與內存統(tǒng)一編址的計算機

中,輸入輸出由傳送指令來實現,不設專門的輸入/輸出指令。

力士大?吊—*但白工、[X―什q小曲“、[.gin〃口r-p.r^TfffA,,"冷

如u早口曰q不可L

思考題:P781,2,5,6

習題:P783,4

7K士大漏一小金白*/a1什曲“、/.不若r/〃/Z7T>HIKI▲,,"田

如u早口曰q不可L

§3.3尋址技術

尋址:1)指令尋址

2)數據尋址

指令尋址:尋找下一條將要執(zhí)行的指令地址。

通常采用順序尋址(順序執(zhí)行)或跳躍尋址(轉移)

數據尋址:尋找操作數的地址。

(本章重點)

尋址與存儲單元的編址有關

如u早口曰q不可L

3.3.1編址

1.編址單位

常見的編址單位有:

按字編址:編址單位:計算機字長

按字節(jié)編址:編址單位=1個字節(jié)

按位編址:編址單位=1bit

2.指令中地址碼的位數

主存容量越大,所需的地址碼位數越長;

編址單位越小,所需的地址碼位數越長。

士*?京一金白工、[a、[.g工n〃口HE),,"今上

如u早口曰q不可L

3.3.2基本的數據尋址方式

數據尋址方式:由指令中形式地址確定有效地址的方法。

以單操作數為例

“」存儲器地址

無尋址技術時:OP|A十二1(宥效地址)J

有尋址技術時:OP羋jA十」-形式地址」

丁式]

形式地址:指令中地址字段給出的地址。

(通常不能直接用來訪問存儲器)

有效地址:形式地址經過一定的計算而得到的能直接訪問存

儲器的地址。

形式地址——史3——^有效地址

如u早口曰q不可L

采用尋址方式的原因:

①操作數地址表示多樣化需要;

②壓縮操作數地址字段的長度。

*“-皿目AN,/必1升44曲“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

(1)立即尋址(ImmediateAddressing)

指令中的地址字段存放的就是操作數。

OPM操作數(取指令的同時取出數據)

尋址方式

力士大?吊—*但白工、[X―什q小曲“、[.gin〃口r-p.r^TfffA,,"冷

如u早口曰q不可L

(2)寄存器尋址(RegisterAddressing)

操作數在某一通用寄存器(在CPU)中。

力士大?吊—*但白工、[X―什q小曲“、[.gin〃口r-p.r^TfffA,,"冷

如u早口曰q不可L

(3)直接尋址(DirectAddressing)

適合于訪問固定主存單元或外部設備接口中的寄存器;

地址碼字段較長。例如,64K尋址空間需16位。

“、/.不4T//7/Z7HiW▲,,"田

如u早口曰q不可L

(4)間接尋址(IndirectAddressing)

需訪問兩次主存才能取出操作數。

KH*7V席—*但RN,/皿1什4小曲“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

一級間接尋址三級間接尋址

主存儲器主存儲器

(b)

EA=(A)EA=(((A)))

S=((A))S=((((A))))

特點:

擴大了尋址范圍,可用指令的短地址訪問大容量的主存空

間;

訪問速度較慢。

據二K士大?京金白上一山正土

“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

(5)寄存器間接尋址(RegisterIndirectAddressing)

寄存器中存放操作數的有效地址。

OP???MRi

形式地址短,但可訪問較大的內存空間。

“、/.不若r/〃/Z7HiW▲,,"田

如u早口曰q不可L

(6)變址尋址(IndexedAddressing)

有效地址=變址寄存器的內容+形式地址(位移量)O

EA=(Rx)+A

主存儲器

IR

Rx

適用于對數據塊操作

k士公金白工、[X―什q小曲“、1.gin〃口r-p-r^TmA,,"冷

X

E

C

d

L

7匚

T

2

?1

H,

W

4

,H

g

CS

VK

LU

如u早3日q不可L

(7)基址尋址(BasedAddressing)

有效地址=基址寄存器的內容+形式地址(位移量

EA=(Rb)+D

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

?變址尋址與基址尋址的區(qū)別:

變:通常由變址寄存器提供修改量,

形式地址為基準地址,

面向用戶(例如向量運算);

基:基址寄存器提供基準地址,

形式地址為位移量,

面向操作系統(tǒng)(例如程序的動態(tài)重定位)。

展二K土大濟一迎金白工、/a的“,L3T門〃口r-P-Hirn』

如u早3日q不可L

⑻相對尋址

主存儲器

EA=(PC)+D

位移量D指出的是操作數和現行指令之間的相對位置。

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

⑼頁面尋址

將主存空間分頁,可解決地址碼位數與主存訪問范圍的矛盾。

例:某機主存為64K,將其劃分為256頁,則頁面地址從00H?FFH;

每頁有64K/256=256單元,頁內單元序號從00H?FFH。

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

⑼頁面尋址

頁面尋址又可以分成三種不同的方式:

1)基頁尋址

EA=0/7A操作數S在零頁面中。實際上就是直接尋址。

2)當前頁尋址

EA=(PC)H〃A操作數S與指令本身處于同一頁面中。

3)頁寄存器尋址

頁面地址取自頁寄存器,與形式地址相拼接形成有效地址。

土*?京一金白工、[a、[.g工n〃口HE),,"今上

如u早3日q不可L

⑼頁面尋址

頁面尋址又可以分成三種不同的方式:

主在

0

0頁內地址操作數

(b)

主存

PCPCHPCL

當前頁面頁內地址操作數

頁寄存器頁面號

頁面號頁內地址操作數

H*代田—*上-"4X2“、/.ge)“心Him▲”"田

如u早3日q不可L

以當前頁尋址為例:

主存儲器指令寄存器

OP38

0頁

1頁

EA

2F38-------》指令

」2F38

指令所在災

所在頁

2F85

255頁程序計數器

“、/.不若r/〃/Z7HiW▲,,"田

木u早3日q不可L

(10)其它尋址

位尋址:能尋址到位,一般用于專門的位操作指令。

塊尋址:對連續(xù)的數據塊進行尋址。

一般要指明塊首址和塊長(或)末址。

堆棧尋址:由堆棧指針SP隱含指定,不需要指令給出地址碼。

存儲器堆棧:內存中一個連續(xù)的存儲區(qū),按后進先出方式存取。

內存SP為棧頂指針

基本操作:1)壓入

SP2)彈出

如u早3日q不可L

尋址方式的表示方式

1)顯式:在指令中設置專門的尋址方式字段。

OP:M:A

2)隱式:由指令的操作碼隱章約定址方仆

二:〔形式地址〕

使用約定的

尋址方式

一條指令中的各地址碼可采用不同的尋址方式。

例如:MOVAX,[BX]

器間接跡二

KH*7V席—*但RN,/皿1什4小曲“、/.不若r/〃/Z7HiW▲,,"田

思考題:P787,8,16

習題:P7810,12

ML7K土大濟―小金白*/a1什曲“、/.不若r/〃/Z7T>HIKI▲,,"田

如u早3日q不可L

3.3.4變型或組合尋址方式

1.自增型寄存器間址和自減型寄存器間址

(1)自增尋址(Ri)+

EA=(印)

Ri-(Ri)+dRi

先確定EA后遞增Ri

(2)自減尋址-(Ri)

Ri-(Ri)-d

EA=(Ri)

先遞減Ri后確定EA.

Ri

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

2.擴展變址方式

(1)先變址后間址(前變址方式)

EA=(A+(Rx)),

操作數S=((A+(Rx)))o

(2)先間址后變址(后變址方式)

EA=(A)+(Rx),

操作數S=((A)+(Rx))o

如u早3日q不可L

3.基址變址尋址

EA=(Rb)+(Rx)+D

其中:Rb為基址寄存器,Rx為變址寄存器,D為位移量。

位移量D在指令一旦確定后不能再修改;

基址和變址寄存器中的內容可以改變。

ML7K土大濟―小金白a1什曲“、/.不若r/〃/Z7HIKI▲,,"田

如u早3日q不可L

常見尋址方式小結

尋址方式通俗解釋

⑴立即尋址操作數在指令(的地址字段)中。

⑵寄存器尋址操作數在CPU的某一寄存器中。

(3)寄存器間址操作數在內存,其地址在CPU的某一寄存器中。

(4)直接尋址操作數在內存,其地址由指令直接給出。

⑸間接尋址操作數在內存,指令中給出操作數地址的地址(操

作數的地址也在內存)。

(6)變址、基址、操作數在內存,其內存地址為

相對尋址Rx或Rb或PC的值+指令中給的位移量。

KH*7V席—*但RN,/皿1什4小曲“、/.不若HiW▲,,"田

如u早3日q不可L

本章重點:

1.理解指令的基本格式和基本操作種類,理解擴展操

作碼方法;

2,掌握基本數據尋址方式和有效地址的確定方法,搞

清楚每一種基本尋址方式的特點;

3.存儲器堆棧的概念及堆棧的進、出棧操作

金,K土大]京金白工、IX,,、I.g¥H4口fHTPRA,,"4

如u早3日q不可L

§3.4堆棧與堆棧操作

堆棧:“后進先出”(LIF0)的存儲區(qū)。

3.4.1堆棧結構

>寄存器堆棧(硬堆棧)

>存儲器堆棧(軟堆棧)

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

1,寄存器堆棧(硬堆棧)

可由移位寄存器組構成。(從圖中縱向看)

KH*7V席—*但RN,/皿1什4小曲“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

2.存儲器堆棧(軟堆棧)

從主存中劃出一段區(qū)域來作

堆棧,棧底固定,棧頂浮動。

由堆棧指針寄存器SP指示當

前棧頂的位置。

自底向上生成堆棧,棧底地址大于棧頂地址,通常棧指針

始終指向棧頂的滿單元。

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

3.4.2堆棧操作

進棧操作(壓入):

(SP)-1-SP修改棧指針

(A)一(SP)將A中的數據壓入堆棧

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

3.4.2堆棧操作

出棧操作(彈出):

((SP))一A將棧頂內容彈出,送入A中

(SP)+1-SP修改棧指針

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

堆棧的應用:

在一般計算機中,堆棧主要用來暫存中斷斷點、子程序調用時的

返回地址、狀態(tài)標志及現場信息等,也可用于子程序調用時參數的傳

遞等。

“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

§3.5指令系統(tǒng)實例(側重于8086/8088尋址方式)

3.5,0與8086/8088相關的預備知識

1.8086/8088的結構

n外部總線

,總線接口部件

隊(BIU)

>

EU

控制鵠

微操作信號L執(zhí)行部件

|(EU)

圖2-128086內部結構框圖

K土八C京」一小金白工、【小一"4型“、/."r/口Z"#HrmA,,ML

如u早3日q不可L

3.5,0與8086/8088相關的預備知識

2.8086/8088存儲器的分段管理

[[外部總線

20位地址緩

邏輯仁

________16位數據線

UCPU內總線

0

EU

控制器

微操作信號

庭寄存器|

±1~圖2-138086/8088主存物理地址的形成

圖2-128086內部結構框圖

分段管理的目的是使指令可以訪問較大的內存空間。

士大?吊q占白工、【小e“、/.不若r/〃/Z7HiW▲,,"田

如u早3日q不可L

3.5,0與8086/8088相關的預備知識

3.段寄存器

CS:代碼段寄存器

DS:數據段寄存器

SS:堆棧段寄存器令

ES:附加段寄存器列

通常將需執(zhí)行的程序各部分(指令代碼、數據、堆棧等)分別放在指

定的某個段中。當CPU訪問某個主存單元(如取指令或存取操作數)時,

就必須指明(或默認使用)哪個段寄存器提供該單元的段基值,并給出

該單元在這個段內的偏移量。

如u早3日q不可L

3.5,18086/8088指令系統(tǒng)特征

二地址指令系統(tǒng)。(一條指令里最多有兩個地址)

操作碼:定長操作碼,變長指令碼。

地址碼:寄存器、立即、寄存器間址、基址、變址等尋址。

對于操作數在內存的尋址方式,有效地址EAW物理地址!

I形式I______A|有效地址EA_______J_I___k物理地址

I地址I(16位)4-1(20位)

段首址

(20位)

對于二地址指令:其中一個尋址方式可選,

另一個只能是寄存器尋址。

士大?吊q占白工、【小e“、/.不若HiW▲,,"田

如u早3日q不可L

3.5.2尋址方式

以二地址指令為例,指令格式為OPA1A2

例如:ADDBX,5

基本尋址方式匯編符號例子尋找操作數(的地址)的過程

寄存器尋址ADDBX,5EA=BX,即數據在寄存器中

寄存器間址ADD[BX],AXEA=(BX)

立即尋址ADDBX,5操作數在指令中

直接尋址ADD[100],AXEA=100

間接尋址

變(基)址尋址ADD[BX+20],AXEA=(BX+20)

自相對LOOPL1EA=(IP)+位移量

RU早:J日q刁\三兒

例:MOVAL,AH;AL—(AH)8位

SUBAX,BX;AX—(AX)-(BX)16位

INCCX;CX—(CX)+116位

20位地址繞0:夕卜部趨緩

卷續(xù)控制逮姆

TT16位數揖線

CS

DS

ES

SS

IP

n廠

<0

控fM部

微捺作信號

圖2-128086內部結構框圖

MLyH土大?吊—4/士白工、/MA1什4

溫馨提示

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

評論

0/150

提交評論