第四章 指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章
• • • • 指令和指令系统概述 指令格式(重点) 寻址方式(重点) 指令系统的发展
指令系统
1
§4.1 指令系统概述
指令:指示计算机执行某种操作的命令 。 指令系统(指令集):一台计算机中所有机器指令的 集合。
指令系统是和机器密切相关的,它体现了CPU的功 能,不同CPU的指令系统是不同的。 指令系统是计算机硬件与软件的接口
3
性能较好的指令系统应具有如下性能要求
1. 完备性:(指令丰富、功能齐全、使用方便) 2. 规整性:
对称性:既可寄存器寻址又可存储器寻址; 均匀性:支持各种数据类型(字节、字等); 指令格式和数据格式的一致性;
3. 兼容性:(易于实现向上兼容) 4. 指令高效率化:(提高指令的执行速度,重点优化使用
地址长度取代
1或2
操作码DW
0或 1
0或1
0,1,2,4
(字节数) 0,1,2,4 立即数
Mod
2位
Reg
R/M 比例S
3位 2位 (b) 指令
变址I
3位
基址B 偏移量
3位
3位
27
例4-3 汇编指令ADD CL,BH对应的机器指令为
0000001011001111,含义如下:
OP D W Mod Reg r/m

16
4.2.3、指令字长度
• 指令字长是一条指令中所包含的二进制位数,等于操作 码长度与地址码长度之和。 指令字长与机器字长有何关系? 无固定关系,指令字长可以大于、等于、小于机器字长。 一般来讲: 微、小型机中,指令字长>机器字长 大、中型机中,指令字长≤机器字长
17
• 机器字长通常与主存单元的位数一致 单字长指令:指令字长=机器字长 半字长指令:指令字长=1/2机器字长 双字长指令:指令字长=2倍机器字长
37
(1)
立即寻址
所需的操作数由指令直接给出,称为立即数寻址方式, 简称立即寻址。
立即寻址特征
OP
#
D
立即数
优点:取指令时将操作码和一个操作数同时取出,不必再次访 问存储器,提高了指令的执行速度。 缺点:操作数是指令的一部分,不能被修改,灵活性较差;而 且数值大小受到限制。
38
例如:
操作码 MOV
(2)操作数在寄存器中。指令的地址码部分是某个寄存器, 操作数就在该寄存器中。 (3)操作数在内存中。指令的地址码部分是内存单元的地 址,操作数就在该内存中。
36
寻址方式描述中采用如下约定:
EA:操作数的有效地址 (X):X中的内容,X为寄存器时,则表示寄存器中的内 容,X为存储器时,则表示存储器中的内容。 R:寄存器 M:存储器
13
5. 零地址指令
OP
• • • 无需任何操作数 如HALT、 NOP (空转)等 所需操作数由默认地址中 用在堆栈计算机中
14
堆栈:一个特殊的存贮区域,数据存取时, 按照“先进后出”的规律进行 硬件构成: 硬堆栈:寄存器堆。 软堆栈:内存中的指定区域。
类型:自底向上、自顶向下
15
说明:
• • 上述几种指令格式,并非所有计算机都有 地址较少的指令,具有指令短,执行速度快, 硬件实现简单等特点,多为结构较简单、字长 较短的小型机、微机所采用。 地址较多的指令,具有功能强,编程方便等特 点,多为字长较长的大、中型机所采用。
23
4.2.5 指令助记符
硬件只能识别0和1,因此操作码采用二进制形式,如果用二进 制代码编写程序,书写和阅读都非常麻烦。为了便于书写和 阅读机器指令程序,每条机器指令用一种帮助记忆的符号来 表示,这种符号称为指令助记符。例如,前面用到的符号 HLT、AAA、DEC、MUL、ADD等都是指令助记符。 用助记符书写的指令称为汇编语言指令,汇编语言指令比机器 语言指令更易于书写和阅读,但是,硬件只能识别二进制编 码,因此,汇编语言指令必须转换为机器语言指令才能被执 行,这种转换是通过汇编程序的翻译实现的。
5
4.2ห้องสมุดไป่ตู้1 、操作码
表示指令要完成的操作,长度取决于指令系统中指令的条数。 • 操作码字段的位数一般取决于指令系统的规模,较大的指 令系统就需要更多的位数来表示每条特定的指令。

一般说来,一个包含n位的操作码最多能够表示2n条指令
6
有两种组织方式: 1、定长操作码: 每条指令的操作码长度均相同 优点:简化了计算机的硬件设计,提高了指令译码和识别速度。
21
例4-2 指令字长为12位,每个地址码为3位,采用扩展操作码的 方式,设计4条三地址指令、16条二地址指令、64条一地址 指令和16条零地址指令。 分析:每个地址码为3位,三地址指令中的操作码位数可占据3 位,需要设计4条三地址指令,则可用000~011表示;二地 址指令中的操作码位数可占据6位,需要设计16条二地址指 令,则可用100000~101111表示,为了与三地址指令(最高 位为0)区分,二地址指令扩展操作码的最高位可置为1;一 地址指令中的操作码位数可占据9位,需要设计64条一地址 指令,则可用000 000000~000 111111表示,为了与三地址 指令和二地址指令区分,最高两位可置为11;同理,零地址 指令中的操作码最高三位可置为111。
22
解:扩展操作码设计如下: 000 ××× ××× ××× ┆ ┆ 4条三地址指令 011 ××× ××× ××× 100 000 ××× ××× ┆ ┆ 16条二地址指令 101 111 ××× ××× 110 000 000 ××× ┆ ┆ 64条一地址指令 110 111 111 ××× 111 000 000 000 ┆ ┆ 16条零地址指令 111 000 001 111
缺点:会导致指令字长度过长。
适用:用于字长较长的大中型机计算机。 举例:IBM360/370系列,OP 8位
7
2、变长操作码 指令操作码的长度不尽相同 • 将使用频率较高而地址码要求较多的指令用较少位表示 操作码;对地址码位数要求较少的指令,用较多位表示 操作码;对无操作数的指令,整个指令字均用作操作码。 优点:在比较短的指令字中,既能表示出比较多的指令条数, 又能尽量满足操作数地址的要求。 缺点:计算机的硬件设计复杂,指令译码和执行速度较慢。 (增加了硬件设计的复杂性) 以上两种方案,操作码一般在指令字的高位部分。
31
32
(2) 转移寻址方式
当程序转移执行的顺序时,指令的寻址就采取转移寻 址方式。 所谓转移,是指下条指令的地址码不是由程序计数器给 出,而是由本条指令给出。程序转移后,按新的指令地址开
始顺序执行。
采用指令转移寻址方式,可以实现程序转移或构成循 环程序,从而能缩短程序长度,或将某些程序作为公共程序 引用。
26
80x86/Pentium指令格式
80X86/Pentium 指令字长度是可变的,由 1~16 字节组成,指令格式如下: 字节数 0~4 1~2 0~1 MODE 0~1 SIB 0~4 偏移量 0~4 立即数
前缀
0或 1
操作码
0 或1
0或1
0或1 (字节数)
指令前缀
段取代
操作数长度取代
(a) 前缀
含义如下:
OP 000000 D W Mod 0 1 10 Reg 010 r/m 001 DISP低8位 DISP高8位 00110100 00010010
D=0:Reg为源操作数,由 mod和r/m决定目的操作数。 W=1:表示进行字操作。 Mod=10:表示第二个操作数为存储器操作数。
r/m=001:表示EA=BX+DI+DISP。
8
4.2.2 地址码
地址码指出参与操作的数据(存贮位置) 计算机操作数的来源、去处:
1、在指令中: 最快 2、CPU内部的通用寄存器: 较快,与运算器速度匹配,例如 MOV R2,R1 3、内存的一个单元: 次之,与运算器速度不匹配,尽量少访内, 例如 MOV [R12],R1 4、外设接口中的寄存器:最慢,较少使用 例如 IN PORT
20
①定长操作码指令格式设计 例4-1 1IBM 360/370 操作码是8位定长操作码形式, 那么该指令系统最多可有多少条指令? 解:操作码是8位定长操作码形式,其操作码的变化 范围可为00000000~11111111,因此,该指令系统 最多可有28=256条指令。 ②变长操作码指令格式设计
在变长操作码中,较短的操作码不能为较长操作码的前缀!
据指令中地址码部分地址的个数,指令格式可分为以下几种:
9
1. 四地址指令
第二 OP A1 A2 A3 结果 A4 下一条指令地址
第一操作数地址
特点: ⑴直观,明了 ⑵地址码太长,指令字太长 ⑶执行速度慢 ⑷下一条指令地址在指令中给出,程序转移不方便,现已淘 汰,只有早期的机器使用。
10
2. 三地址指令
18
确定指令字长的原则:
① ② • 指令字长尽可能短:节省内存空间,提高执行速度,提 高代码利用率; 指令字长等于字节的整数倍 许多机器采用变字长指令,但长度取为字节的整数倍, 以避免存贮空间的浪费。
19
4.2.4 指令格式设计 1.指令格式设计的目标 ①占据存储空间少 ②执行速度快 2.指令格式设计 指令格式设计包括操作码设计、操作数地址码设计 和指令字优化三个方面。
33
6
34
2.操作数的寻址方式
操作数的寻址就是寻找操作数的有效地址,其目的是寻找
所需要的操作数。
指令中地址码字段给出的地址为形式地址(此地址有时不 能直接用于访问操作数,需经过某种运算才能得到有效地址)
35
操作数通常有以下三种情况:
(1)操作数在指令中。指令的地址码部分就是操作数本身,
这种操作数称为立即数。
24
PDP-11系列机指令格式 PDP-11系列机指令字长16位,其指令格式如下表所示。
在PDP-11中,操作码字段是不固定的,其长度也是不相 同的。这样做可以扩展操作码以包含较多的指令。但是操作 码字段不固定,对控制器的设计来说必将复杂化。
25
IBM 370系列机的指令格式
操作码的长度是固定的
29
4.3 寻址方式
当某个操作数或某条指令存放在某个存储单元时,该存 储单元的编号,就是该操作数或指令在存储器中的地址。
形成操作数或指令地址的方式,称为寻址方式。
寻址方式分为两类,即指令寻址方式和数据寻址方式
30
1. 指令的寻址方式
指令的寻址方式有两种,一种是顺序寻址方式,另一种 是跳跃(转移)寻址方式。 (1) 顺序寻址方式 指令地址在内存中按顺序安排,当执行一段程序时, 通常是一条指令接一条指令的顺序执行,这种程序顺序执行 的过程,称为指令的顺序寻址方式。 为此,必须使用程序计数器(又称指令指针寄存器)PC 来计数指令的顺序号,该顺序号就是指令在内存中的地址。
OP A1 A2 A3 结果
PC--下一条指令地址 特点: 指令字仍较长,访内次数较多,一般大型机中用
11
3. 二地址指令
OP A1 A2
A1 OP A2 → A1 PC---下一条指令地址 特点: 指令字较短,较常使用
12
4. 单地址指令
OP A1
ACC OP A1→ACC(累加器) ACC中既放操作数,又放操作结果 PC---下一条指令地址 特点: 指令字长短、执行时间快,在微型机中被广泛使用。
000000
1
0
11
001
111
D=1:Reg为目的操作数,由 mod和r/m决定源操作数。 W=0:表示进行字节操作。 Mod=11: 表示寄存器寻址。
28
例4-4 设DISP=1234H,则汇编指令ADD DISP[BX][DI],DX
对应的机器码为00000001 10010001 00110100 00010010,
特征 #
2


指令系统的设计主要是确定指令格式、数据类型、 操作功能及操作数地址访问方式。 设计一种新的指令系统,从提出指令系统的编码到 实现这种指令系统的结构要经过几次反复, 基本过程如下: 首先根据计算机的未来用途及通常机器指令集拟出 初步指令系统的设计及实现; 然后设计出这套指令系统的编译程序,进行模拟测 试; 接着研究这套指令操作码、寻址方式的效能,进行 指令系统的优化
频率高的指令,减少访问存储器的次数和容量)
4
§4.2 指令格式
一条指令由操作码和操作数地址码两部分组成。 指令的格式如下:

• • • • •
操作码 OP
地址码 A
一条指令一般应包含如下信息: 操作码:规定指令的操作性质及功能。 地址码:指明该指令的操作对象,可以是具体数也可以是 存放具体数的地址。 操作结果的存放地址:指令应明确操作的结果存放的位置。 下一条要执行指令的地址。
相关文档
最新文档