计算机组成原理_第1页
计算机组成原理_第2页
计算机组成原理_第3页
计算机组成原理_第4页
计算机组成原理_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章指令系统

CPU的主要工作是执行指令,指令是指挥计算机执行某

些操作的命令,一台计算机所有指令的集合构成该计算

机的指令系统。指令和指令系统是计算机最基本的概念.

指令系统是计算机的主要属性,位于硬件和软件的交界

面上,它既是硬件设计的依据,又是软件设计的基础。

1

本章主要内容

-指令格式

■操作码的扩展、地址结构的简化

■常见寻址方式的含义、特点

■指令的类型、特点

2

'、机器指令的格式

■一条指令就是机器语言的一个语句,由一组二进制

代码来表示。一条指令由两部分构成:

0PAddr

操作码:指明指令的操作性质及功能。

地址码:指明操作数的地址。

■一条指令必须有一个操作码,可能包含几个地址码。

■指令涉及指令长度、操作码结构、地址码结构等问题。

3

1、指令长度

-指令长度是指一条指令中所包含的二进制代码的位

数,它取决于操作码字段的长度、操作数地址的个

数及长度。一般希望指令长度短一些。

■指令长度与机器字长没有固定的关系。指令长度可

以等于机器字长,也可以大于或小于机器字长。

.在一个指令系统中,若所有指令的长度都相等,称

为定长指令字结构;若各种指令的长度随指令功能

不同而不同,称为变长指令字结构。

4

2、操作码

•指令系统中的每一条指令都有一个唯一确定的操作

码,指令不同,其操作码的编码也不同。通常,希

望用尽可能短的操作码字段来表达全部的指令。

•指令操作码的编码可以分为定长编码和变长编码。

5

①定长编码

■这是一种最简单的编码方式,操作码的位数和位置

固定,指令长度不固定。操作码的位数越多,所能

表示的操作种类就越多。

■操作码不同涉及的操作数的个数不同,所以指令的

长度随操作码而变化。

■例如,旧M370机就是采用这种定长操作码格式。

旧M370机(字长32位)的指令可分为三种不同的

长度,不论指令的长度有多少位,其中的操作码字

段一律都是8位。

6

IBM370机的指令格式

RR型

RX型

RS型

SI型

SS型

7

②变长编码

■这是一种操作码长度不固定,而指令长度固定的设

计方法。这种设计方法使操作码分散在指令字的不

同位置上。

-PDP-11机(字长16位)的指令分为单字长、两字

长、三字长三种,操作码字段占4〜16位不等,可

遍及整个指令长度。

-显然,操作码字段位数的不固定将增加指令译码的

难度,使控制器的设计复杂化。但是,它有效地利

用每个二进制位。

8

PDP-11机的指令格式

9

③指令操作码的扩展技术

■变长操作码常常采用扩展操作码的方法来设计。

-扩展思路:让操作数地址个数多的指令的操作码字段

短些(如三地址指令),让操作数地址个数少的指令

的操作码字段长些(如一或零地址指令)。

■假设某机器指令长工6位,包括一个操作码字段和三个

地址字段,其中操作码字段4位,每个地址字段也是4

位。其格式如下:

OPA1A2A3

■如果按照定长编码的方法,4位操作码字段最多只能

表示16条不同的三地址指令。

10

指令操作码的扩展技术(续)

0000XXXXYYYYZZZZ

>15条三地址指令

>15条二地址指令

»15条一地址指令

>16条零地址指令

1111111111111111

U

3、地址码

■根据一条指令中有几个操作数地址,可将该指令

称为几地址指令。

■一般的指令有被操作数、操作数以及操作结果这

三个数,因而就形成了三地址指令格式,这也是

早期计算机指令的基本格式。

■在三地址格式的基础上,后来又发展成了二地址

格式、一地址格式和零地址格式。

12

三地址指令

■格式:OPA1A2A3

■执行的操作:(A1)OP(A2)-A3

-A1为被操作数地址,A2为操作数地址,

A3为结果的存放地址。

■A1、A2、A3可以是内存单元地址,也可以是运算

器中的通用寄存器。如果全是内存中的单元地址,

则执行一条三地址指令至少需要访问4次主存。

13

二地址指令

■格式:OPA1A2

■执行的操作:(A1)OP(A2)TA1

-A1为目的操作数地址,兼做存放结果的地址;

A2为源操作数地址。(A1原先的值无需保存)

■A1、A2可以是内存中的单元地址,也可以是运

算器中的通用寄存器。如果是内存中的单元地址,

则执行一条二地址指令至少要访问4次主存.

14

计算机中有许多寄存器

其中有一个称为累加寄

一地址指令存器(AC),存放操作数

■格式:0PA1

■执行的操作:(AC)OP(A1)->AC

■这种指令以累加寄存器AC中的数为被操作数,指

令中地址码字段所指明的数为操作数,操作结果又

放回累加寄存器AC中(隐含约定AC)。

■A1可以是内存中的单元地址,也可以是运算器中

的通用寄存器。如果是内存中的单元地址,则执行

一条一地址指令至少需要访问2次主存。

15

零地址指令

■格式:0P

■零地址指令只有操作码,而没有地址码。

■例如下面的情况不需要地址码:

-指令不需要操作数,例如停机指令就没有操作数.

-操作数隐含约定在累加器AC中。

-操作数隐含指定在堆栈中,例如堆栈计算机,零

地址指令的操作数从堆栈中获得。

16

简化地址结构与减少地址码字段的位数

■简化地址结构的途径:隐含约定地址

-PC代替指令中的后继指令地址

.结果存放在操作数地址

-操作数或结果约定在AC中

-约定所有地址的位置,如零地址指令

■减少地址码字段地位数的途径:

-采用隐含约定地址减少地址数,位数减少

-采用寄存器寻址、寄存器间接寻址,位数减少

按操作数的物理位置分类

■第一种是访问内存的指令格式,我们称这类指令为存储器一存

储器型指令(SS)O

■这种指令操作时都涉及内存单元,参与操作的数都放在内

存里。从内存单元取操作数,操作结果放回内存中。

■机器执行这种指令需要多次访问内存,执行速度慢。

-第二种是访问寄存器的指令格式,我们称这类指令为寄存器一

寄存器型指令(RR)o

-机器执行这类指令过程中,需要多个通用寄存器和个别专

用寄存器。从寄存器中取操作数,把结果放回寄存器,因

止匕,不需要访问内特。

-机器执行寄存器一寄存器型指令的速度很快。

-第三种类型是寄存器一存储器型指令(RS)o

-执行此类指令既需要访问内存单元,又要访问寄存器。

■执行速度介于第一种和第二种之间。

18

:、指令和数据的寻址方式

■存储器既可以存放指令,又可以存放数据。当某指

令或操作数存放在某个存储单元时,该存储单元的

编号,就是该指令或操作数在存储器中的地址。

■所谓寻址就是寻找操作数的地址或下一条要执行的

指令的地址,而形成操作数或指令地址的方式,称

为寻址方式。寻址方式分为两类,即指令寻址方式

和数据寻址方式。

19

1、指令寻址方式

寻找下一条将要执行的指令的地址称

为指令寻址。指令寻址比较简单,它

又可以细分为顺序寻址和跳跃寻址。

20

计算机中有许多寄存器

&顺序寻址方式其中有一个称为程序计

数器(PC),放指令地址

-指令在内存中是顺序存放的,当执行一段程序时,

通常是一条指令接一条指令地顺序执行。

■CPU顺序取出指令、执行指令的过程我们称为指

令的顺序寻址方式。

■必须有一个跟踪程序执行顺序的措施,那就是程

序计数器PC。程序计数器PC用来记录指令的顺

序号,该顺序号是指令在内存中的地址。

21

顺序寻址方式(续)

-下图是指令顺序寻址方式的示意图:

主存储器

程序计数器指令地址指令内容

A0LDA200

1ADD201

一-」—>2INC

3JMP6

/程序启动时,由、、4LDA206

5SVB207

操作系统把程序1;\

6INC

\的首地址放入程/7LDA200

\序计数器PC中。/

______J

22

跳跃寻址方式

-当程序转移执行的顺序时,指令的寻址就采用跳跃寻址

方式。所谓跳跃,是指下条指令的地址不是由程序计数

器给出,而是由转移指令给出。

■跳跃寻址时,转移地址形成方式有3种,直接寻址、间

接寻址、相对寻址。它们与数据寻址方式中的直接寻址、

间接寻址、和相对寻址完全相同,只不过寻找的不是操

作数的有效地址而是转移的有效地址,具体内容将在数

据寻址中详细介绍。

■采用指令跳跃寻址方式,可以实现程序转移和公共程序

调用等功能。例如,指令系统的各种条件转移或无条件

转移指令,就是采用跳跃寻址实现程序转移。

23

跳跃寻址方式(续)

・下图是指令跳跃寻址的示意图:

内存

程序计数器指令地址指令内容

0LDA200

1ADD201

2INC

3JMP6

4LDA206

5SVB207

6INC

7LDA200

24

2、数据寻址方式

-根据指令中地址码字段的内容(形式地址)形成

操作数有效地址的方式,称为数据寻址方式。

寻址

形式地址A=有效地址EA

■数据寻址方式的种类很多,但其最终目的是寻找

所需要的操作数。

■寻址方式与操作数可能存放的地方有直接关系。

25

操作数可能存放的地方

■操作数可能存在的地方有:

-操作数包含在指令中。

-操作数在CPU的某个寄存器中。

-操作数在主存中。

-操作数在堆栈中。

.操作数在某个输入/输出端口中。

■由于各种机器的结构不同、数据的来源不同,从

而形成了各种不同的数据寻址方式。下面介绍一

些比较典型而且常用的寻址方式。

26

隐含寻址

-这类型指令,不是明显地给出操作数的地址,而是

在指令中隐含着操作数的地址,即采用隐含约定的

方式实现寻址。

■例如,单地址指令格式:ADDAddr

明显给出的只是第一操作数的地址Addr,该地址

中的数据跟谁加?约定累加器AC为第二操作数地

址,它并不出现在指令的地址码字段中。因此,累

加器AC对单地址指令格式来说是隐含地址。

27

立即寻址

■指令的地址码字段给出的不是操作数的地址,而

是操作数本身,这种寻址方式称为立即寻址。

■例如:MOVCX,8中,8的寻址方式就是立即

寻址方式,8称为立即数。

■立即寻址指令的执行时间很短,因为数据包含在

指令中,指令和操作数同时取出,不需要再次访

问内存。

■在程序执行过程中,立即数不能被修改,灵活性

差;一般用来提供初始值。

28

[直接寻址

!指令中地址字段直接给出操作数的有效地址,形式地址

就是有效地址。这种寻址方式称为直接寻址方式。直接

寻址方式给出的地址是绝对地址,也叫绝对寻址方式。

操作数S=(A)

■这种寻址方式不需要寻址运算,便于硬件实现,但地址

空间有限。

29

,间接寻址

!间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放

操作数地址的主存单元的地址,简称操作数地址的地址。通常在

指令格式中划出一位作为直接或间接寻址的标志位。

操作数s=((A))

-该寻址方式是早期计算机经常采用的寻址方式,由于两次访存,

影响指令执行速度,但能够用同一条指令指向不同的主存单元。

30

寄存器寻址

寄存器寻址指令的地址码给出的是CPU中通用寄存器

的编号,该编号指定的寄存器里存放着操作数。

操作数S=(Ri)

■特点:

工、从寄存器取数比从指令

内存取数要快;OP|-|F|Ri

-------1-------寄存器Ri

2、表示寄存器的地址>|操作数s

码字段比表示内存地

址的地址码字段要短.寄存器寻址方式

31

寄存器间接寻址

-指令中的地址码给出某一通用寄存器的编号,该编号

指定的寄存器中存放着操作数的有效地址,而操作数

存放在内存单元中。间接寻址需要特征位来指明。

操作数S=((RJ)

■指令较短,只需一次访存,比间接寻址要快。

操作数

32

I相对寻址

G巴程序计数器PC的内容加上指令中形式地址D,而形成操作数的有效

地址,这种寻址方式为相对寻址。相对寻址需要特征位给予指示。

-形式地址D常称为偏移量,这个偏移量可以是正数,也可以是负数。

■采用相对寻址的好处在于,操作数的地址与指令地址总是差一个固定

的值,因而所编写的程序是浮动的,可以放在内存的任何地方执行而

不需修改,解决了程序运行时的再定位问题。

■有效地址EA的计算为:指令内存

33

计算机中有许多寄存器

其中有的用作基址寄存

基址寻址器(RJ,存放基址值。

指令内存

0P•••FRD

■基址寄存器Rb的内容与b

指令中给出的形式地址

D相加,形成操作数有操作数

效地址,这种寻址方式

称为基址寻址。基址寻基址寄存器Rb

址需要特征位给予指示.

■基址寄存器的内容称为

1、基址寻址面向系统,用于逻辑地址

基址值。指令地址码字和物理地址的变换,以解决程序在内存

段给出一个偏移量,偏中的再定位和扩大寻址空间的问题;

移量可正、可负。2、对用户而言,基址寻址中基址寄存

器提供基准值、是固定的;而形式

■有效地址的计算:地址为偏移量、是可变的。

3、如多用户管理。嗡O

EA=(Rb)+D

34

计算机中有许多寄存器

其中有的用作变址寄存

变址寻址器(RJ存放变址值。

■变址寻址是把CPU中的变址寄指令内存

存器Rx的内容与指令中给出的OP••«FR”D

形式地址D相加,形成操作数

f

有效地址的寻址方式。变址寻t

操作数S二操作数

址需要特征位给予指示。

■有效地址:EA=(Rx)+D变址寄存器R,变址值

■变址寻址和基址寻址计算有效

地址所用算法相同,但二者在

从名字上就能听出来:

用法上是有区别的。

基址寄存器内容不能变,

-变址寻址寄存器提供修改量、变址寄存器内容可变。

是可变的,而指令中的形式地例如,数组元素的访问。

址提供基准值、是固定的;变

址寻址是面向用户的,目的是

实现有效地址的规律性变化。

35

在内存、外存交换数据

&页面寻址时,一般以数据块为单

位,也就有了页面寻址

■把整个主存空间分成若干大小相等的块,每块称

为一页,每页都有自己的编号,称为页地址。

-在一页中,有若干主存单元,每个单元也有自己

的编号,称为页内地址。

-这样划分后,存储器的有效地址被分为两部分,

一部分为页面地址,一部分为页内地址。

■页内地址由指令的形式地址直接提供,并通过与

页面地址的简单拼接得到有效地址。从而实现从

虚拟地址到物理地址的转换。

36

《有效地址生成过程

:家页寻症,0

、一...

uP主M存

0页内地址

1

।---------------------N

■EA=OIIA=A操作数=>操作数

名前页寻症)PCHPCi

_____--,

生存

-pcT-页内地址1

操作数

■匚八一1LJJH〃™L=>操作数

1员寄存器寻定)页面号页寄存器

VPM

主存

[页面号页内地址

■匚r-(r\pj〃r-r■L操作数=>操作数

AJ

37

3、综合说明

■除以上寻址方式外,还有位寻址、块寻址、段寻址、

堆栈寻址(堆栈寻址后面还要介绍)等。

■几种寻址方式可以组合使用。如基址变址寻址,就是

基址寻址和变址寻址的组合。

■一条指令如果有两个或两个以上地址码时,各地址码

可以采用不同的寻址方式。例如源地址采用一种寻址

方式,而目的地址采用另一种寻址方式。

■为了区分各种不同的寻址方式,必须在指令中给出标

志位加以区别,称为寻址特征位。寻址特征位也可以

采用隐含约定的方式来规定。一位特征位能区分2种

寻址方式,n个寻址特征位能区分2n种寻址方式。

38

三、堆栈寻址方式

■堆栈与其它形式的存储器之间的差别在于数据的存

取方式和寻址方式有所不同。

■所谓堆栈通常是指按照特定顺序进行存取的存储区

域,特点是“先进后出”。在这个区域中,作为起

点的一端被固定,称为栈底;另一端随操作的进行

而浮动,称为栈顶。堆栈操作在栈顶进行。

-计算机中常用的有两种堆栈结构:寄存器堆栈和存

储器堆栈。

39

1、寄存器堆栈

■用一组专门的寄存器构成寄存器堆栈。

-寄存器堆栈的特点:

-寄存器组中各寄存器是互相连接的,它们之间

具有对应位自动推移的功能。

-数据传送都是在栈顶和某个寄存器之间进行。

-栈顶固定不动,数据串行移动,所以不需要设

置堆栈指示器。

-CPU通过“进栈”指令把数据送入堆栈,而通

过“出栈”指令把数据从堆栈中取出来。

■寄存器堆栈也叫串联堆栈。

40

《寄存器堆栈原理

■当新数据进栈时,占据最顶部

位置,堆栈中的原有数据依次某通用寄存器某通用寄存器某通用寄存器某通用寄存器

下移。D

-当压入堆栈的数据个数超过堆V

栈的容量时,栈底的数据会被

挤出堆栈而丢失。2

-出栈时,最顶部的数据最先离C

开堆栈,并被放回到通用寄存n

器中。与此同时,堆栈里的所1

有其它数据依次上移,以填满

原先数据所留下的空间。

-寄存器堆栈是有价值的,多用

于控制器;其主要不足是成本

较高,寄存器数目有限,不适寄存器堆栈原理示意图

合作大容量堆栈。

41

y2、存储器堆栈

-从主存中划出一个区域作为堆栈使用,称为存储器堆栈。

通常,在设计计算机系统时,把主存储器的一部分用作堆

栈区。堆栈区一旦设定,该存储区就不能作为其它用途。

-存储器堆栈的特点是:数据不动,栈顶移动。

-在存储器堆栈中,需要设置一个堆栈指示器SP,它是CPU

中的一个专用寄存器。堆栈指示器SP指向堆栈的栈顶。

■在建立存储器堆栈时,需要把一个存储单元地址送入堆栈

指示器SP,以确定堆栈的栈顶,例如把300Q作为栈顶地

址送入堆栈指示器SP,进行初始化。

42

堆栈进栈操作(PUSH)

-在存储器堆栈中,也使用

274

堆栈指示器SP275“进栈”和“出栈”指令

276

|300277进行压入和弹出操作。但

300栈顶指令的功能与寄存器堆栈

通用寄存器A301

302中的情况有所不同.

进栈以前的情况■进栈指令PUSHA操作

274描述如下:

2

堆栈指示器SP75

276(SP)-1一SP,

|277277

300栈顶(A)-Msp

通用寄存器A301

302其中,(A)表示通用寄存

器的内容,表示堆栈

进栈以后的情况ASP

指示器,Msp表示栈顶。

43

y数据出栈操作(POP)

-假设出栈前,堆栈中

已经有a、b、c三个

数,堆栈指示器指向

栈顶单元275。现在

执行的操作是把堆栈

中的数送回通用寄存

器A中。

■出栈指令POPA的操

作描述如下:

(Msp)一A

(SP)+1-SP

44

关于存储器堆栈

牙,在画存储器堆栈时,地址值小的存储单元位

于,地址值大的存储单元位于下面。在开始时,

栈址值较大。随着压入操作的进行,栈顶地址值

小,栈顶逐渐上移。所以把这种结构的堆栈称为

底向上”生长的堆栈。

.“

■阳丁-T.自底向上”生长的存储器堆栈,进栈时先修改

堆栈指示器,后存入数据;出栈时相反,先取出数据,

后修改堆栈指示器。——“SP指向的栈顶有元素”。

■与“自底向上”堆栈相对应,还有“自顶向下”堆栈。

45

四、指令类型

■不同机器的指令系统各不相同。从指令操作码的功

能来考虑,一个较完善的指令系统,应当包括:

■数据传送类指令

-算术运算类指令

-逻辑运算类指令

.输入输出类指令

■字符串操作类指令

.程序控制类指令

■系统控制类指令

46

11、数据传送指令

!数据传送类指令是计算机最基本的指令,用来实现数据

的传送操作。数据在传送过程中得到加工、处理、并获

得结果,所以传送指令是最基本指令。

-数据传送指令包括:取数指令、存数指令、传送指令、

成组传送指令、字节交换指令、清累加器指令、堆栈操

作指令、输入/输出指令等。如,MOVR1,ROo

■数据传送指令主要用来实现主存储器和寄存器之间、寄

存器和寄存器之间的数据传送。

■设置传送指令时,一般有3方面的约定:

-传送范围:规定好操作数的来源和目的地。

■传送单位:如,以字节、字、双字、数组之一为单位传送。

■寻找方式:指令中要有寻址特征位,来说明是何种寻址方式。

如设置F位,F=0,表示直接寻址;F=1,表示间接寻址。

47

.2、算术运算指令

7计算机的基本任务是对数据执行运算操作,几乎所有的

计算机都设置有算术运算指令。

-算术运算指令包括:

■定点加、减、乘、除指令;浮点加、减、乘、除指令

■求反、求补指令

■算术移位指令、算术比较指令

■十进制加、减运算指令

-大型机有向量运算指令,直接对整个向量或矩阵求和、求积

■如,ADDSUM,DX:为双操作数指令,其中ADD为指

令助记符,代表加操作;DX,源操作数地址,为寄存器

编号;SUM,目的操作数地址,为主存单元;功能是将

DX内容与SUM单元内容相加,结果留在SUM单元中。

48

3、逻辑运算指令

-逻辑函数多种多样,但都可以由与、或、非、异或这4

种基本的逻辑函数组合实现;逻辑运算中还包括逻辑

移位操作。

■主要用于无符号数的位操作、代码的转换、判断和运

算,特点是运算按位进行,本位运算不影响其它位。

■例如,A=11001010,B=00001000,ANDA,B:

这是一条双操作数指令,其中,AND为指令助记符,

代表与操作;B,源操作数地址,为主存单元;A,目

的操作数,为主存单元。该指令的功能是将A和B的内

容相与,结果留在A单元中。

49

4、输入输出指令

■以主机为参考点,信息由外设传送给主机称为输入,

由主机传送给外设称为输出。

■输入输出(I/O)指令用来实现主机与外部设备之间

的信息交换,包括输入输出数据、主机向外设发送的

命令、以及外设向主机报告工作状态等。

■事实上,CPU不能直接访问外设。在CPU和外设之间

还存在一个接口,是通过这个接口实现信息交换的。

-在接口中,设置有数据寄存器、命令寄存器、状态寄

存器。这些寄存器也称为端口。端口是可以访问的,

访问就需要地址,于是存在外设端口的编址问题。

50

II/O端口的编址

■独立编址的I/O:

■外设端口地址与主机存储器地址无关,是另一个独立地址空间.

-在独立编址方式下,需要使用专门的I/O指令(IN/OUT)o

80x86采用独立编址方式,I/O地址空间有64KB。

■例如,INAL,port(输入);OUTport,AL(输出)。

-统一编址的I/O:

■把外设的端口和主存单元地址一样看待,统一编号,CPU用访

问主存的方法去访问外设端口。

■在统一编址方式下,不需要专门的I/O指令,用一般的数据传

送指令就能够实现I/O操作。PDP-11机采用统一编址方式,把

高4KB主存地址作为外设地址。

-例如,MOVAL,port(输入);MOVport,AL(输出)。

51

两种方式各有优缺点

-一个外设通常至少有两个寄存器,数据寄存器和命令

状态寄存器,每个寄存器可以由分配给它们的地址来

识别。

-独立编址下,I/O指令和访存指令容易区分,外设地

址线少、译码简单,主存空间不会减少;但控制线要

增加I/ORead和I/OWrite信号。

■统一编址下,访存指令就可用于外设控制,可直接对

外设寄存器进行各种运算,不需要增加新的信号线;

但由于占用了主存地址,缩小了主存空间。

52

5、字符串操作指令

-字符串操作指令一般包括:

■字符串传送

-字符串转换(比如字符串的码制转换)

■字符串比较

■字符串查找

-字符串抽取

■字符串替换等。

-这类指令用于非数值数据处理,文字编辑经常使用。

■例如,REPMOVB;把SI指向的源操作数搬移到DI

指向的目的地址,每搬一个字节,SI和DI加工,搬移

的总数放在CX中。

53

6、程序控制指令

■程序控制指令也称为转移指令,用来控制程

序执行的顺序,改变程序的执行方向。

■程序控制类指令分为三种:

-转移指令

-转子指令

-软中断指令

54

转移指令

无条件转移指令:指令中给出转移命令和转移地址,当执

行这条指令时,无条件转移到指定的地址,再往下执行。

例如,JMPREAD;JMP为命令,表示跳转,READ为

符号地址,表示跳转的地址。

-条件转移指令:条件转移指令主要用于程序的分支控制。

如果满足条件则执行转移,否则顺序执行。转移的条件由

程序字PSW提供,如,C、Z、N、V、P等状态标志。

例如,JZSTOP;上条指令结果为0,转移到STOP。

■循环指令:循环指令可以看成特殊的条件转移指令,循环

次数由指令给出。在执行循环指令时,每执行一次,循环

次数减1,直到循环次数减为0时停止循环。

例如,LOOPADDING;执行次数放在CX中。

55

转子指令

■在编程过程中,常常将一些功能相对独立的、实现相同功能

的、反复出现的程序代码编制成程序模块,这种一经定义、

可以被主程序调用的程序模块称为子程序。

■转子指令:转子指令也叫子程序调用指令,指令中给出操作

码和转移地址。转移地址是子程序的入口地址。在执行转子

指令时,机器会自动把返回地址保存在堆栈中,以备在返回

时使用。

例如,CALLROOT;ROOT为开平方子程序名

-返回指令:子程序的最后一条指令必须是返回指令,只有操

作码。其返回地址隐含指定,可从堆栈中获得,该返回地址

在执行转子指令时被压入堆栈。

例如,RET;子程序返回指令,从堆栈中获得返回地址。

56

4软中断指令

■引起中断的原因很多,其中一种原因是由于程序执行

了一条软中断指令,例如INTn,软中断过程是程序

切换的过程。

-软中断指令给出操作码和一个中断号,中断号的作用

是用来找到中断服务程序的入口地址的。

-在执行软中断指令时,先把被中断程序的断点压入堆

栈,再转向中断服务程序的入口地址,去执行中断服

务程序。

-中断服务程序的最后一条指令是中断返回指令,例如

IRET,它从堆栈中取出断点,返回原程序继续执行。

57

7、系统控制类指令

■处理器控制指令,一类是对CPU状态字的某些标志位

进行清除、设置、测试、修改等,达到控制CPU执行

指令、或处理事件的行为;另一类为实现CPU与外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论