計算機組成原理 第4章 指令系統jsp_第1頁
計算機組成原理 第4章 指令系統jsp_第2頁
計算機組成原理 第4章 指令系統jsp_第3頁
計算機組成原理 第4章 指令系統jsp_第4頁
計算機組成原理 第4章 指令系統jsp_第5頁
已閱讀5頁,還剩48頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第四奉指令系綻

?概述

?尋址方式

?指令系統

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.

Xulaoshi@tom.com

概述

?指令:是指示計算機某種操作的命令。

微指令,機器指令,宏指令

?指令系統:一臺計算機中所有機器指令的集合。

它是機器硬件設計的依據,也是軟件設計的基礎。

它決定了一臺計算機硬件的主要性能和基本功能O

是硬件和軟件間的界面。

?余列計算機:有共同的指令集,相同的基本體系結

構。

?CISC和RISC

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分2

Xulaoshi@tom.com

1.完備性:指令豐富,功能齊全,使用方便。

2.有效性:程序占空間小,執行速度快。

3.規整性:對稱性,勻齊性,指令格式和數

據格式的一致性。

,4.兼容性:

“向上兼容”系列機中低檔機上運行

的軟件可以在高檔機上運行。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分3

Xulaoshi@tom.com

計算機語言與硬件結構的關系

?高級語言的語句和用法與具體機器的指令系統無

關;

?低級語言分機器語言和匯編語言,他們和具體機

器的指令系統密切相關。

?匯編語言與硬件的關系密切,編寫的程序緊湊、

占內存小、速度快,特別適合與編寫經常與硬件

打交道的系統軟件;而高級語言不涉及機器的硬

件結構,通用性強、編寫程序容易,特別適合與

編寫與硬件沒有直接關系的應用軟件。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分4

Xulaoshi@tom.com

概述

學器屑岑荀要素

-操作碼

-源操作數

-目的操作數

-下一條指令的引用

指令字(簡稱指令)即表示一條指令的機器字。.

指令格式則是指令字用二進制代碼表示的結構形

式,由操作碼字段和地址碼字段組成。__________

操作周操作數操作數

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分5

Xulaoshi@tom.com

1.操作碼

設計計算機時,對指令系統的每一條指令都

要規定一個操作碼。

指令操作碼表示該指令進行什么性質的操作,

表征指令的操作特性與功能。

組成操作碼字段的位數一般取決于計算機指

令系統的規模。

例如,一個指令系統只有8條指令,則有3位

操作碼就夠;如果有32條指令,那么就需要5位操

作碼。

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.

6

Xulaoshi@tom.com

2.地地碼

地址碼字段通常指定參與操作的操

作數的地址。

根據一條指令中有幾個操作數地址,可將

該指令稱為幾操作數指令或幾地址指令。目前,

二地址指令和一地址指令用的最多。

三地址指令操作碼A1A2A3

二地址指令操作碼A1A2

一地址指令操作碼A1

零地址指令操作碼

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分7

Xulaoshi@tom.com

?(1)零地址指令的指令字中只有操作碼,而沒有地

址碼。

?(2)一地址指令常稱為單操作數指令。

OP(A)->A(AC)OP(A)->AC

?(3)二地址指令常稱為雙操作數指令。

(Al)OP(A2)->Al

?(4)三地址指令字中有三個操作數地址。

?(Al)OP(A2)->A3

?0P表示操作性質;(AC)表示累加寄存器AC中的數;

(A)表示內存卡地址為A的存儲單元中的數或運

算器中地址為A的通用寄存器中的數;-表示把操

作(運算)結果傳送到指定的地方。

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.

Xulaoshi@tom.com

式中,從操作數的物理位置來說,

又可歸2吉為三種類型。

?存儲器-存儲器(SS)型指令:操作時都是涉及

內存單元,參與操作的數都放在內存里,從內存某單

元中取操作數,操作結果存放至內存另一單元中,因

此機器執行這種指令需要多次訪問內存。

?寄存器-寄存器(RR)型指令:需要多個通用寄

存器或個別專用寄存器,從寄存器中取操作數,把操

作結果放到另一寄存器。機器執行寄存器-寄存器型指

令的速度很快,因為執行這類指令,不需要訪問內存。

?寄存器-寄存器(RS)型指令:執行此類指令時,

既要訪問內存單元,又要訪問寄存器。

DegangXu,HenanUniversityOfTechnology.

2012年6月n日10時24分9

Xulaoshi@tom.com

3.指令字長度

一個指令字中包含二進制代碼的位數,稱為

指令字長度。而機器字長是指計算機能直接處理

的二進制數據的位數,與主存單元的位數一致,

它決定了計算機的運算精度。

它們之間關系如上:其中L為指令字長度,N為機器字長度

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分10

Xulaoshi@tom.com

?使用多字長指令,目的在于提供足夠的地

址我來解決訪問內存任何單元的尋址問題。其

主要缺點是必須兩星或多妻訪問內存以取出一

整條指令,降低了CPU的運算速度,又占用了

更多的存儲空間。

?等長指令字結構:各種指令字長度是相等的O

這種指令字結構簡單,且指令字長度是不變的。

?變長指令字結構:各種指令李長度隨指令功

能而異。結構靈活,能充分利用指令程度,但

指令的控制較復雜。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分11

Xulaoshi@tom.com

?4.指令助記符

由于硬件只能識別1和0,所以采用

二進制操作碼是必要的,但是書寫程序

卻非常麻煩。

為了便于書寫和閱讀程序,每條指

令通常用3個或4個英文縮寫字母來表示。

這種縮寫碼叫做指令助記符。

在不同的計算機中,指令助記符的

規定是不一樣的。因此,指令助記符還

必須轉換成與它們相對應的二進制碼。

DegangXu,HenanUniversityOfTechnology.

2012年6月n日10時24分12

Xulaoshi@tom.com

指令格式舉例

入佳微型計算機的指令格式

8位微型機字長只有8伉,指令結構是一種可變字

長形式,包含單字長、雙字長、三字長指令等多種。

單字長指令操作數

雙字長指令操作數操作數地址

三字長指令操作數操作數地址操作數地址1

內存按字節編址,所以單字長指令每執行~條指

令后,指令地址加7。雙字長指令或三字長指令每執

行一條指令時,指令地址要加2或加8,可見多字長的

指令格式不利于提高機器速度。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分13

Xulaoshi@tom.com

才旨令和相令余統指令的使用

?一般的操作數類型大小選擇主要有:字

節、半字(16位)、單字(32位)、和

Xulaoshi@tom.com

例:指令格式如下所示,其中機器字長16位,0P

為操作碼,試分析指令格式的特點。

1597430

OP————源寄存器目標寄存器

[解]:

(1)單字長二進制指令。

(2)操作碼字段0P可以指定27=128條指令。

(3)源寄存器和目標寄存器都是通用寄存器(可分

別指定16個),所以是RR型指令,兩個操作數均在寄

存器中。

(4)這種指令結構常用于算術邏輯運算類指令。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分15

Xulaoshi@tom.com

?例:指令格式如下所示,0P為操作碼字

段,試分析指令格式特點。

15107430

OP|廠=--------II源寄存器|「變址寄存器

位喜量(16^^=

[解]:

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

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

(3)一個操作數在源寄存器(共16個),另一個

操作數在存儲器中(由變址寄存器和位移量決定)

所以是RS型指令。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分16

Xulaoshi@tom.com

指令和數據的尋址方式

?指令的尋址方式

計算機中有兩種信息。即指令和數據(或稱操

作數),它們都存放在存儲器相應的地址中。運行

程序時,計算機逐條執行指令,并對數據進行處理。

如何從存儲器中找到所需要的指令或數據呢?很明

顯,只要找到它們在存儲器的有效地址即可。

所謂尋址方式,就是尋找指令或操作數的有效

地址的方式。

1.順序尋址方式:按照指令在內存的存放位置順序地

取出指令,然后執行的過程,為順序尋址方式。

2.跳躍尋址方式:程序轉移執行的順序。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分17

Xulaoshi@tom.com

內存

PC

1.順序尋址100

A1100

為了達到順序尋址

101

的目的,CPU中必須有+1

一個程序計數器(PC)

對指令的順序號進行計

數。PC中開始時存放程

序的首地址,然后每執

行一條指令,PC加1,

以指由下條指令的地址,

直到程序結束。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分18

Xulaoshi@tom.com

PC

100

2.跳躍尋址

當程序中出現分支或循環時,

就會改變程序的執行順序。此時,

對指令尋址就要采取跳躍尋址方

式。所謂跳躍,就是指下條指令

的地址不是通過程序計數器PC加

1獲得的,而是由指令本身給出。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分19

Xulaoshi@tom.com

操作教的尋址方式

1.隱含尋址

2.立即尋址

3.直接尋址

4.間接尋址

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

6.相對尋址方式

7.基值尋址方式

8.變址尋址方式

9.塊尋址方式

10.段尋址方式

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.

Xulaoshi@tom.com

指令和數據的尋址方式

?隱含尋址

這種類型的指令,不是明顯地給出操作數

的地址,而是指令中隱含著操作數的地址。

在指令中不明顯的給出而是隱含著操作數

的地址。例如,單地址的指令格式,沒有在地

址字段中指明第二操作數地址,而是規定累加

寄存器AC作為第二操作數地址,AC對單地址

指令格式來說是隱含地址。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分21

Xulaoshi@tom.com

指令和數據的尋址方式

?立即地址

指令的地址字段指出的不是操作數的地址,而是操作

數本身,這種尋址方式稱為立即尋址。立即尋址方式的特

點是指令執行時間很短,因為它不需要訪問內存取數,從

而節省了訪問內存的時間。

例如:單地址的移位指令格式為

OP(移位)FD

這里,D不表示地址,而是表示某寄存器中存放的操

作數需要移位的次數,因此D可看做移位指令的操作數。F

為標志位,當F=1時,進行右移;當F=0時,進行左移。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分22

Xulaoshi@tom.com

指令和數據的尋址方式

直接尋址

直接尋址是一種基本的尋址方法,其特點是:

在指令格式的地址字段中直接指出操作數在內存

的地址D。由于操作數的地址直接給出而不需要經

過某種變換或運算,所以稱這種尋址方式為直接

尋址守式。

OPXD=1350H---------------------

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分23

Xulaoshi@tom.com

指令和數據的尋址方式

■間接尋址

間接尋址是相對于直接尋址而言的,

在間接尋址的情況下,指令地址字段中的

形式地址D不是操作數的真正地址,而是

操作數地址的指示器,或者說D單元的內

容才是操作數的有效地址。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分24

Xulaoshi@tom.com

指令和數據的尋址方式

OPX2D=1000H

操作數地址=2000H100°H

S=1234H操作數=1234H

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分25

Xulaoshi@tom.com

指令和數據的尋址方式

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

當操作數不放在內存中,而是放在中央處理器的

通用寄存器中時,可采用寄存器尋址方式。顯然,此

時指令中給出的操作數地址不是內存的地址單元號,

而是通用寄存器的編號,操作數在CPU的內部寄存器

中。如:(AX,BX,CX,DX)

寄存器間接尋址方式與寄存器尋址方式的區別在

于:指令格式中的寄存器內容不是操作數,而是操作

數的地址,該地址指明的操作數在內存中。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分26

Xulaoshi@tom.com

指令和數據的尋址方式

?相對尋址

把程序計數器PC的內容加上指令格式

中的形式地址D而形成操作數有效地址。程

序計數器的內容就是當前指令的地址。

因此,所謂“相對”尋址,就是相對

于當前指令地址而言。采用相對尋址方式

的好處是程序員勿需用指令的絕對地址編

程,因而所編程序可以放在內存任何地方。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分27

Xulaoshi@tom.com

指令和數據的尋址方式

假設D=1000H,PC=2000H,則有效地址=(PC)+D

=2000H+1000H=3000H

操作數=(3000H)=1234H

)012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.基

Xulaoshi@tom.com

才旨令和數據的尋址方式

?變址和基值尋址方式

?變址尋址方式與基值尋址方式有點

類似,它們都是把某個變址寄存器或基

值寄存器的內容,加上指令格式中的形

式血址而形成操作數的有效地址。

?但使用變址尋址方式的目的不在于

擴大尋址空間,而在于實現程序塊的規

律變化。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分29

Xulaoshi@tom.com

指令和數據的尋址方式

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分30

Xulaoshi@tom.com

指令和數據的尋址方式

?復合尋址方式

?復合尋址方式是把間接尋址方式同相對尋

址方式或變址相結合而形成的尋址方式。它分

為先間接方式與后間接方式兩種。

(1)變址間接式

?這種尋址方式是先把變址寄存器的內容A

和形式地址D相加得A+D,然后間接尋址,求

得操作數的有效地顯。操作數的有效虛址為E=

(A+D)

年月日時分DegangXu,HenanUniversityOfTechnology.

2012611102431

Xulaoshi@tom.com

指令和數據的尋址方式

OPX3D

操作數

A

假設變址寄存器A的值為0050H,D=1000H,則有效地址

=((A)+D)=(0050H+1000H)=2345H

操作數=(2000H)=2345H

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.

32

Xulaoshi@tom.com

指令和數據的尋址方式

(2)間接變址式

這種尋址方式是先將形式地址取間

接變換(D)=N然后把N和變址寄存器的

內容A相加)即得操作數的有效地址。操

作數的有效地址表達式為E=A+(D)

=A+N

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分33

Xulaoshi@tom.com

指令和數據的尋址方式

OPX3D

A

假設變址寄存器A的值為0050H,D=1000H,

則有效地址=A+(D)

=0050H+(1000H)=0050+2000=2050H

操作數=(2050H)=3456H

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.34

Xulaoshi@tom.com

指令和數據的尋址方式

?決寸址:

通常在指令中指出數據塊的起始地址和數據塊

的長度,常用在輸入輸出指令中。

多用于I/O指令。對順序連續的成塊數據字進行

尋址。

目的:壓縮程序的長度,加塊執行速度。

用于:1)兩個部件間的數據交換;

2)程序,數據塊的浮動。

若塊的長度可變,格式如下:

操作碼源首址標志位末首址

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分35

Xulaoshi@tom.com

指令和數據的尋址方式

?段尋址

以8086的段尋址為例。這種尋址方式的實質是基值

尋址。Intel8086/8088微機中,ALU16位運算,但其

尋址范圍可到1M,

2012年6月11日10時24分36

Xulaoshi@tom.com

操作數尋址方式設計的要求

1.指令內包含的地址盡可能短;

短地址指令占存儲空間小,且能減少存儲時間。

2.能訪問盡可能大的存儲空間;

3.地址能隱含在寄存器里;

寄存器字長與機器字長相同,一般對應整個存儲

空間。這樣在發生大跨步跳躍時,用短指令也行。

4.希望在不改變指令的情況下改變地址的實際值;能

夠處理數組,表格或數據串。

5.尋址方式盡可能簡單。一

2012年6月11日10時24分DegangXu,HenanUniversityOfTechnology.節

Xulaoshi@tom.com

例:一種二地址RS型指令的結構如下所示:

6位4位1位2位16位

0PII—I隨用靜用EEI偏移量D

其中I為間接尋址標志位,X為尋址模式字段,D位偏

移量字段。通過I,X,D的組合,可構成下表所示的

尋址方式。請寫出六種尋址方式的名稱。

說明

00E二D

01E=(PC)+/-DPC為程序計數器

10E=(R2)+/-D

TTE=(R3)

00E=(D)

T1E=(RD+/T)R1為基址寄存器

⑴直接尋址⑵相對尋址⑶變址尋址

⑷寄存器間接尋此小5)眄技錄批⑹基址尋址

月]]日10時24分Degangxu,HenanUniversityOfTechnology.

Xulaoshi@tom.com

堆棧-----能存取數據的暫時存儲單元.

一.串聯堆棧

一組專門的寄存器,一個R保存一個數據。

數據的傳送在棧頂和累加器之間進行O

特點:速度高,后進先出。

AC

缺點:

AI1、寄存器的數目有F艮的

BII2、堆找讀出是破壞性的

C

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分39

Xulaoshi@tom.com

二.存儲器堆找

用一部分主存空間作堆棧.

優點:1.長度可隨意;

2.堆棧的數目可隨意指定;'

3.尋址簡單------用訪內指令.

硬件支持:

SP-一堆棧指示器(棧指針),CPU中一個專門寄存器。

SP的內容是棧頂的單元地址。改變SP的內容即可移

動棧頂的位置。

注意:主存中某一部分作為堆棧區后,該部分不能

作其它用途。

DegangXu,HenanUniversityOfTechnology.

2012年6月n日10時24分40

Xulaoshi@tom.com

-)進棧-----累加器中的數送堆棧保存.

(AC)-Msp(sp)—1Tsp

AC

a

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分41

Xulaoshi@tom.com

二)出找----將堆找中的教取出送累加器.

(sp)+1-sp(Msp)一AC

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分42

Xulaoshi@tom.com

8086堆棧指令

設sp的初值MOVsp,im

采用下推式(PUSHDOWN)

堆棧的最大容量為sP的初值與SS間的距離。

例:PUSHAX

分兩次完成:AH—sp,(sp)-1-sp

AL—sp,(sp)-1一sp

注意:

存儲器堆棧中,進棧時先存入數據,后修

改堆棧指示器;出棧時,先修改堆棧指示器,

然后取出數據。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分43

Xulaoshi@tom.com

典型指令

?一臺計算機最基本的、必不可少的指令是不

多的,因為很多指令都可以用這些最基本的指令組

合來實現。

?既可以直接用硬件實現,也可以用其他指令

編成子程序來實現,但兩者在執行時間上差別很大,

因此在指令系統中,有相當一部分指令是為了提高

程序的執行速度和便于程序員編寫程序而設置的。

?另外,指令系統的有效性還表現在用它所編

制的程序占用的存儲器空間小。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分44

Xulaoshi@tom.com

-分類(

1,數據傳送類

取數MOVAX,TEMP

存數MOVTEMP,AX

傳送MOVAX,CX

2.算術運算類

定點+,-,x,-,ADD,ADC,INC,

SUB,DEC,MUL,DIV等

浮點+,一,x,小,求反,求補NEG,比

較CMP

3.邏輯運算類

NOT,AND,OR,XOR,TEST

年月日時分DegangXu,HenanUniversityOfTechnology.

2012611102445

Xulaoshi@tom.com

4.程序控制類

1MlJMP

條件轉移C,Z,S,P,O

轉子程序JSR

子程序返回RET

中斷返回IRET

5,輸入/輸出類

INAX,nOUTn,AX

6.其他類

標志操作:CLC(clearcarryflag)

STC(setcarryflag)

CLI(clearinterruptelableflag)

HLT,WAIT,ESC,LOCK

DegangXu,HenanUniversityOfTechnology.

2012年6月n日10時24分46

Xulaoshi@tom.com

才旨令和才旨令余統一—指令的使用

算術和遺輯運算整數的算術和遛輯操作:加、減、與、或等。

數據傳輸Load/Store

控制分支、跳轉、過程調用和返回、自略等。

系統操作系統調用、虛擬存儲器管理等。

浮點浮點操作:加、乘等。

十進制十進制加、十進制乘、十進制到字符的轉換。

字符串字符串移現、字符串比較、字符串搜索等。

圖形象素操作、壓縮/解壓操作等。

DegangXu,HenanUniversityOfTechnology.

2012年6月11日10時24分47

Xulaoshi@tom.com

才旨令和相令余統指令的使用

執行頒率排序80X86指令指令執行頻率

1Load22%

2條件分支20%

3比較16%

4Store12%

5加8%

6與6%

7減5%

8寄存器-寄存器間數

溫馨提示

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

評論

0/150

提交評論