第四章指令系统
合集下载
计算机组成原理第4章指令系统课件
4.2 指令的格式
4.2.1 指令的编码格式
操作码OC
AC1
AC2
(1)把保存操作前原来操作数的地址称为源点地址(SS), 把保存指令执行结果的地址称为终点地址或目的地址(DD)。
(2)将源点与终点操作数进行操作码规定的操作后,将 结果存入终点地址。通常二地址指令又称为双操作数指令。
ADD R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以
5 异或XOR
XOR指令对两个操作数进 行按位异或运算。
4.4 指令的种类
4.4.4 移位、循环类指令
CF
位移指令SAL/SHL操作示意图
CF
SAR操作示意图
CF 0
SHR操作示意图
4.4 指令的种类
4.4.4 移位、循环类指令
不带进位标志的循环左移指令ROL MSB 操作数 LSB
CF
不带进位标志的循环右移指令ROR MSB 操作数 LSB
例如:在IBM-PC指令系统中
MOV
AX,05FFH
4.3 寻址方式
4.3.2 常用的寻址方式
2.直接寻址方式
(1)含义: 是指地址字段直接指明操作数在存储器内的位置的寻址 方法。即形式地址等于有效地址。 (2)优缺点: A、优点:简单,不需要进行加法运算。 B、缺点:地址空间指令地址字段长度的限制。
4.2 指令的格式
4.2.3 指令助记符
通常采用一些符号来代表二进制数据,这些符号即指 令助记符。
指令助记符 ADD SUB MUL DIV
助记符示例
含义
指令助记符
相加
AND
相减
OR
相乘
LOAD
相除
STORE
第四章 指令系统[一]
译码开始
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
…
15条三地址指令 15条三地址指令
…
14条二地址指令 14条二地址指令
…
31条一地址指令 31条一地址指令
…
16条零地址指令 16条零地址指令
图4.1 指令译码逻辑图
•
注意事项: 注意事项: • 短操作码不能与长操作码 的前面代码部分相同; 的前面代码部分相同; • 各指令的操作码一定不能重复,而且各类指令的 各指令的操作码一定不能重复, 格式安排应统一规整. 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 1(P151.题2):假设某计算机指令长度为20位 假设某计算机指令长度为20 单操作数、无操作数三类指令形式, 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示, 规定用6位表示,问: 若操作码字段固定为8 现设计出m条双操作数指令,n 若操作码字段固定为8位,现设计出m条双操作数指令,n 固定为 条无操作数指令,在此情况下, 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 多少条单操作数指令? 解 : 2 8 - m - n条
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 机器字长: 位数,通常与主存单元的位数一致. 位数,通常与主存单元的位数一致.
例:设某机器的指令字长为16位,包括基本操作码4位 设某机器的指令字长为16位 包括基本操作码4 16 和三个地址字段,每个地址字段长4 其格式为: 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 A1 OP 8 7 A2 4 3 A3 0
第4章 指令系统
3. 规整性
规整性包括指令系统的对称性,匀齐性,指令 格式和数据格式的一致性.对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等 对待,所有的指令都可使用各种寻址方式.匀 齐性是指:一种操作性质的指令可以支持各种 数据类型.
4.兼容性 兼容性
系列机各机种之间具有相同的基本结构和共 同的基本指令集,因而指令系统是兼容的,即 各机种上基本软件可以通用.但由于不同机种 推出的时间不同,只能做到"向上兼容" .
目前在指令操作码设计上主要采用以下两 种编码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在 指令字的一个字段中,指令的其余部分全 部用于地址码.例如IBM370机和VAX-11系 列机,操作码的长度均为8位,可表示256 种不同的操作. 2. 可变长度操作码
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址, 通常称为操作数.操作数可以是一个直接的数或者 是一个数据所在的地址,它以空格与操作码分开.
例如: MOV AX,[SI]
假如用户用高级语言编程,根本不用 考虑寻址方式,因为这是编译程序的事,但 若用汇编语言编程,则应对它有确切的了解, 才能编出正确而又高效的程序.此时应认真 阅读指令系统的说明书,因为不同计算机采 用的寻址方式是不同的,即使是同一种寻址 方式,在不同的计算机中也有不同的表达方 式或含义. 思考:设计指令系统时,数据的寻址方式 越多越好吗?为什么?
4.直接寻址 指令中的形式地址A就是操作数的真实 地址EA,这种寻址方式称为直接寻址方式, 又称为绝对寻址方式.如图5-3所示.
OP 寻址特征 A 主存 A 操作数
图5-3 直接寻址方式
例如: MOV AL,[0080H] MOV AX,[1000H]
《计算机组成原理》教程第4章指令系统
4
二 指令的格式
即指令字用二进制代码表示的结构形式
包括 操作码:操作的性质 操作码 地址码:操作数(operand)的存储位置,即参加操作的 operand , 地址码 数据的地址和结果数的地址
操作码域(op) 地址码域(addr)
5
1.操作码 操作码
指令的操作码表示该指令应进行什么性质的操作。 组成操作码字段的位数一般取决于计算机指令系统的 规模。 固定长度操作码:便于译码,扩展性差 . 可变长度操作码:能缩短指令平均长度 操作码的的位数决定了所能表示的操作数,n位操 作码最多表示2n种操作
(2). 堆栈工作过程 .
(一)进栈操作 ① 建立堆栈,由指令把栈顶地址送入SP,指针 指向栈顶。 ② 进栈:(A)→Msp, (sp)-1→SP ;Msp:存储 器的栈顶单元 (二)出栈操作 (SP)+1→SP, (Msp)→A
22
五.指令类型
一个较完善的指令系统应当包括: 数据传送类指令: 例)move、load、store等 算术运算类指令: 例)add、sub、mult、div、comp等 移位操作类指令: 例) shl,shr,srl,srr 逻辑运算类指令: 例)and、or、xor、not等 程序控制类指令: 例)jump、branch、jsr、ret、int等 输入输出指令: 例)in、out等 字符串类指令: 例)如alpha中cmpbge、inswh、extbl等 系统控制类指令: 例)push、pop、test等
18
10) *段寻址方式 段寻址方式 Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。 由16位段寄存器和16位偏移量产生20位物理地址 11)*自动变址寻址 自动变址寻址 指在变址方式中,每经过一次变址运算时,都自动改变变址寄存 器的内容,以后在PDP-11中详讲.
计算机原理 第四章指令系统
4. 寄存器间接寻址方式
指令给出寄存器号,寄存器中存放着操作数的地址。
优点:寄存器的位数 较长(一般为机器字 长),足以访问整个 内存空间,这样既有 效地压缩了指令长度, 又解决了寻址空间太 小的问题。
主存单元 例: ADD (R1),(R2) R0 1000H 1000H 3A00H
R1
2C00H+ 3B00H → 3000H单元 R2
计 算 机 组 成 原 理
指令扩展举例 1
16位指令字 三地址指令范围 xxxx
0000 1110 1111 1111 1111 1111 1111 1111
xxxx xxxx xxxx
A1 A1 0000 1110 1111 1111 1111 1111 A2 A2 A1 A1 0000 1110 1111 1111 A3 A3 A2 A2 A1 A1 0000 1111
2.变长操作码,定长指令码。
操作码长度不固定,但指令码的长度固定。这种设计当操作码变 长时,地址码就缩短(地址个数变少),但指令字总长不变。 〔例〕 设某机器的指令长度为16位,包括基本操作码4位和三个 地址字段,每个地址字段长4位,其格式为: 15 14 13 12 OP 11 10 9 8 AD1 7 6 5 4 AD2 3 2 AD3 1 0
第四章
§4.1 指令格式
指令系统
(P148)
§4.2
寻址方式
§4.3 指令类型 §4.4 § 4.5 CISC和RISC 实验模型机的指令系统汇总表
§4.1 指令格式
计算机指令是计算机硬件能够识别并直接执行的操作命令,又称为 机器指令。
一、指令格式
一条指令应包括两方面的信息:操作码信息和地址码信息。 操作码OP 地址码AD
第4章 指令系统
度和数据长度有一定的关系,以方便处理和
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
存取。
二、对指令系统性能的要求三
4、兼容性:
系列机各机种之间具有相同的基本结 构和共同的基本指令集,因而指令系统是 兼容的,即各机种上基本软件可以通用。但 由于不同机种推出的时间不同,在结构和性 能上有差异,做到所有软件都完全兼容是不 可能的,只能做到“向上兼容”,即低档机 上运行的软件可以在高档机上运行。
a、CISC:70年代后,大多数计算机的指 令系统多达几百条。我们称这些计算机 为复杂指令系统计算机(CISC)。
b、RISC:但是如此庞大的指令系统难以 保证正确性,不易调试维护,造成硬件 资源浪费。为此人们又提出了便于LSI技 术实现的精简指令系统计算机(RISC) 返回
二、对指令系统性能的要求一
4.4、指令和数据的寻址方式
一、指令的寻址方式 二、操作数寻址方式
三、寻址方式举例
一、指令的寻址方式一
1、寻址方式:形成操作数有效地址或指令 有效(偏移)地址的方式。 2、寻址方式分为两类,既指令寻址方式和 数据寻址方式。 3、指令的寻址方式有两种,一种是顺序寻 址方式,另一 种是跳跃寻址方式。 4、操作数或指令在存储器中的地址:某个 操作数或某条指令存放在某个存储单元 时,其存储单元的编号就是地址。请看 图示
答案:
退 出 上一页 下一页 上一节 下一节 返回节目录
例三答案:
三、低级语言与硬件结构的关系
高级语言 低级语言
Visual c++、foxpro、java
与软件结构和指令系统无关 编写的程序可在不同机器上 运行
汇编语言、二进制语言
与机器、指令系统密切相关 编写的指令系统不同,不同
机器用不同汇编语言编写程 序,机器唯一可识别的是二
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计原与汇编4
第四章 指令系统
(4)一地址指令 格式:
OP A
意义:单操作数指令 OP(A)→A 双操作数指令 (AX) OP (A)→AX
缩短指令长度的方法:
①结果存放在目的操作数地址中。
②用CPU中的寄存器隐含一个OP数。
③把地址隐含在寄存器中。
第四章 指令系统
(5)零地址指令
格式
OP
用于:①空操作指令、停机指令等。
01B50H 01F50H 021A0H 031ACH 被访问存储单元 段基址
FFFFFH 逻辑地址 物理地址
4、与数据相关的寻址方式
(一)寄存器寻址
• 指令中所需的操作数放在CPU内的某通用寄存器 中,由指令给出该寄存器的地址。 指令(地址码部分):通用寄存器的地址,R#
操作数地址形成: 操作数: R# 在通用寄存器中,( R#)
(二)操作码结构 操作码:指令中表示机器操作性质和种类的部分。
操作码长度:决定了指令系统中完成不同操作的指
令条数。
操作码设计方法:
1. 固定长度操作码 2. 可变长度操作码(扩展操作码)
(三)地址码结构
地址码结构包括:
指令中需要几个地址——指令格式;
地址如何给出——寻址方式;
地址码长度 指令格式分类: (1)四地址指令 格式
0H
正在执行的指令 下一条指令
IP(指令指针)是指令的地址指针。
(4)标志寄存器FR(Flags Register)
记录程序执行时的状态,存储PSW(16位长),有9个标志位。
OF DF IF TF SF ZF AF PF CF
进位位 奇偶位 辅助进位位 零值位 符号位 单步标志位 中断允许位 方向位 溢出位
计算机组成原理 指令系统
IBM 370机的指令格式
8
4 4
4 4 4 12
RR型 RX型 RS型 SI型 SS型
OP
8
R1 R2 R1 X2
4 4
OP
8
B2
4
D2
12
OP
8
R1 R2
8
B2
4 B1 4
D2
12
OP
8
I2
8
D1
12 4 12
OP
L1
B1
D1
B2
D2
图4-1 IBM 370机的指令格式
2.非规整型
操作码字段的位数丌固定,丏分散地放 在指令字的丌同位置上。 PDP-11机(字长16位)的指令分为单 字长、两字长、三字长三种,操作码字段占4 ~16位丌等,可遍及整个指令长度。 显然,操作码字段的位数和位置丌固定 将增加指令译码和分析的难度,使控制器的设 计复杂化。
入 端口地址 如 出 如 AX, n IN AL, n CPU 的寄存器 OUT n, AL AX CPU 的寄存器 IN AL, DX AX, DX 端口地址 OUT DX, AL AX
4.2 寻址技术
所谓寻址,指的是寻找操作数的地址或下一 条将要执行的指令地址。寻址技术包括编址方 式和寻址方式。
AAA AAS AAM AAD AND OR NOT XOR TEST
3. 移位操作 算术移位
逻辑移位
循环移位(带迚位和丌带迚位)
4. 转移 (1) 无条件转移 JMP
(2) 条件转移 结果为零转 (Z = 1) JZ
如
结果溢出转
(O = 1)JO
300 …
完成触収器
结果有迚位转(C = 1)JC 跳过一条指令 SKP
第四章 AT89s52指令系统
• @DPTR的寻址范围覆盖片外RAM的全部64K区 域,例如,MOVX A,@DPTR
第四章 AT89S52指令系统
1
寄存器间接寻址
• 例4-11 • MOV R0,#06H ;06H→ (R0) • MOVX A,@R0 ;((R0))→ (A) • 例4-12 MOV DPTR,#0EFFFH;0EFFFH→ (DPTR0) MOVX A, @DPTR;((DPTR0))→ (A)
• (1002H)=19H
(1006H)=2DH
• (1003H)=4DH
(1007H)=35H
第四章 AT89S52指令(系1统008H)=31H
1
4.DW(Define Word)定义双 字节数据伪指令
• 格式: Yn
[标号:] DW Y1,Y2,Y3,……,
• 该伪指令与DB伪指令的不同之处是,DW定义
第四章 AT89S52指令系统
1
变址间接寻址
• 变址间接寻址指令由基址寄存器和变址寄存器组成, 16位寄存器DPTR(数据指针)或PC(程序计数器)作为 基址寄存器,8位累加器A作为变址寄存器。
• 基址寄存器内容和变址寄存器内容相加形成新的16 位地址,该地址即为操作数的存储地址。这是一种 独特的寻址方式,A中的内容可以随程序的运行动 态变化,所以可以实现动态寻址。
• 也可写成
•
MOV A, 90H ;(90H)→ (A)
第四章 AT89S52指令系统
1
直接寻址
• MOV 0A0H , #20H ; #20H→(P2)
• MOV A, 0A0H;直接寻址,(P2) → (A)
• MOV R0, #0A0H
• MOV @R0, #40H ;#40H→(0A0)
第四章 AT89S52指令系统
1
寄存器间接寻址
• 例4-11 • MOV R0,#06H ;06H→ (R0) • MOVX A,@R0 ;((R0))→ (A) • 例4-12 MOV DPTR,#0EFFFH;0EFFFH→ (DPTR0) MOVX A, @DPTR;((DPTR0))→ (A)
• (1002H)=19H
(1006H)=2DH
• (1003H)=4DH
(1007H)=35H
第四章 AT89S52指令(系1统008H)=31H
1
4.DW(Define Word)定义双 字节数据伪指令
• 格式: Yn
[标号:] DW Y1,Y2,Y3,……,
• 该伪指令与DB伪指令的不同之处是,DW定义
第四章 AT89S52指令系统
1
变址间接寻址
• 变址间接寻址指令由基址寄存器和变址寄存器组成, 16位寄存器DPTR(数据指针)或PC(程序计数器)作为 基址寄存器,8位累加器A作为变址寄存器。
• 基址寄存器内容和变址寄存器内容相加形成新的16 位地址,该地址即为操作数的存储地址。这是一种 独特的寻址方式,A中的内容可以随程序的运行动 态变化,所以可以实现动态寻址。
• 也可写成
•
MOV A, 90H ;(90H)→ (A)
第四章 AT89S52指令系统
1
直接寻址
• MOV 0A0H , #20H ; #20H→(P2)
• MOV A, 0A0H;直接寻址,(P2) → (A)
• MOV R0, #0A0H
• MOV @R0, #40H ;#40H→(0A0)
第四章-指令系统PPT课件
指令系统中指令采用等长指令的优点:各种指令字长度是相等的,
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
第4章 指令系统
零地址指令
OP
这种指令有两种可能: 指令不需要操作数,如停机指令(HALT)、空操作指令(NOP)等。 所需的操作数是默认的,如默认在堆栈中。
注:上述的地址格式是针对同一种性质的操 作在不同的机型上可以采取的不同的实现方案 , 在具体的某种机型的指令系统中,根据操作类 型的不同,又可以采用不同的地址格式。
位利用率高,但控制器复杂。在字长较短的微型机上广泛使用。 例:如某机器的指令系统有 15 条 3地址指令、 15条 2 地址指令、 15条1地址指令、16条零地址指令,共61条。该机器指令长度是16 位,包括4位基本操作码字段和3个4位地址码字段,其格式如下:
OP(4位) A1(4位) A2(4位) A3(4位)
通常用于跳转指令中
24
指令寻址
顺序寻址
通过程序计数器PC加1,自动形成下一条指令的地址
跳跃寻址
跳跃寻址是通过转移指令来实现 , 转移地址的形成方式有3种:直接、相 对和间接寻址,如:
26
4.3 RISC技术
CISC:复杂指令集计算机(Complex Instruction Set Computer)。
直接寻址
形式地址就是操作数的有效地址,即:EA=A
例:OP 1000, Rx 特点:简单,但地址的位数受到指令字长的限制
19
常用的数据寻址方式
间接寻址
形式地址是操作数的有效地址的地址,即:EA=(A ) 特点:扩大了寻址范围 ,但至少需要访问两次主存, 降低了指令的执行速度
通常用于字符串处理、数组运算等成批数据处理中
22
常用的数据寻址方式
基址寻址
有效地址EA=(基址寄存器Rb)+D 例:OP addr(Rb),Rj 通常用于多用户计算机系统中,逻辑地址到物理地址的转换
OP
这种指令有两种可能: 指令不需要操作数,如停机指令(HALT)、空操作指令(NOP)等。 所需的操作数是默认的,如默认在堆栈中。
注:上述的地址格式是针对同一种性质的操 作在不同的机型上可以采取的不同的实现方案 , 在具体的某种机型的指令系统中,根据操作类 型的不同,又可以采用不同的地址格式。
位利用率高,但控制器复杂。在字长较短的微型机上广泛使用。 例:如某机器的指令系统有 15 条 3地址指令、 15条 2 地址指令、 15条1地址指令、16条零地址指令,共61条。该机器指令长度是16 位,包括4位基本操作码字段和3个4位地址码字段,其格式如下:
OP(4位) A1(4位) A2(4位) A3(4位)
通常用于跳转指令中
24
指令寻址
顺序寻址
通过程序计数器PC加1,自动形成下一条指令的地址
跳跃寻址
跳跃寻址是通过转移指令来实现 , 转移地址的形成方式有3种:直接、相 对和间接寻址,如:
26
4.3 RISC技术
CISC:复杂指令集计算机(Complex Instruction Set Computer)。
直接寻址
形式地址就是操作数的有效地址,即:EA=A
例:OP 1000, Rx 特点:简单,但地址的位数受到指令字长的限制
19
常用的数据寻址方式
间接寻址
形式地址是操作数的有效地址的地址,即:EA=(A ) 特点:扩大了寻址范围 ,但至少需要访问两次主存, 降低了指令的执行速度
通常用于字符串处理、数组运算等成批数据处理中
22
常用的数据寻址方式
基址寻址
有效地址EA=(基址寄存器Rb)+D 例:OP addr(Rb),Rj 通常用于多用户计算机系统中,逻辑地址到物理地址的转换
计组第4章
CISC:
•复杂指令系统计算机。 •指令系统中指令数量多达几百条。
RISC:
•精简指令系统计算机。 •选取使用频率最高的简单指令,指令 条数少。
4.1.2 对指令系统性能的要求
一个完善的指令系统应满足如下 四方面的要求:
完备性 规整性
有效性
兼容性
完备性 是指用汇编语言编写各
种程序时,指令系统直接提 供的指令足够使用,而不必 用软件来实现。完备性要求 指令系统丰富、功能齐全、 使用方便。
《计算机组成原理》
第四章 指令系统
介绍几个基本概念
指令是指挥机器完成某种操作的命令。
指令系统是某台计算机能直接识别并正
确执行的所有指令的集合。
指令系统是表征一台计算机性能的重要
因素,是计算机软件与硬件的交界面。
主要内容
1. 2. 3. 4. 5. 指令系统的发展 指令的格式 寻址方式 指令的分类和功能 典型指令系统的模型
操作操作数指令操作码寄存器指令操作数寄存器直接寻址操作码存储器指令操作数直接寻址操作码操作数存储器寄存器指令存储器指令操作码操作数寄存器间接寻址存储器间接寻址操作码操作数pc指令存储器存储器寄存器指令操作码操作数变址寻址pc存储器寄存器指令操作码操作数存储器寄存器指令操作码操作数变址相对寻址间接变址寻址16位偏移量dop其中i为间接寻址标志位x为寻址模式字段d位偏移量字段
有效性是指利用该指令系统所编
写的程序能够高效率地运行。 高效率主要表现:
•
•
空间:在程序占据存储空间小;
时间:执行速度快。
规整性包括指令系统的对称性、匀齐性、
指令格式和数据格式的一致性。
• 对称性:指在指令系统中所有的寄存器 和存储器单元都可同等对待,所有的指 令都可使用各种寻址方式; • 匀齐性:指一种操作性质的指令可以支 持各种数据类型; • 指令格式和数据格式的一致性:指指令 长度和数据长度有一定的关系,以方便 处理和存取。通常都是字节的整数倍。
第四章 指令系统74页PPT
操作码长度不固定:操作码分散在指令字的不同字段内
能有效压缩操作码的平均长度,控制复杂,指令译码、分析较难
操作码
因此,现代计算机中多采用不等长操作码——不同 类的指令,其操作码的长度不同
不等长操作码对于缩短操作码的平均长度具有明显 好处
实现不等长操作码可以通过扩展操作码法实现。
扩展操作码
实现不等长操作码可以通过扩展操作码法实现 操作码的长度随地址码的减少而增加 对于一部分不需要操作数的指令可以将指令操作码扩 展到操作数字段 不同地址的指令可以具有不同长度的操作码 在不增加指令长度的情况下,能充分利用指令的各个 字段扩展操作码的长度,使它可以表示更多的指令 通过等长扩展、不等长扩展两种方式实现
扩展操作码
0000 0001 0111
同样的要求还可采用4-5-9不等长扩展 7条使用频度最高的指令操作码
10000
10001 11110
15条使用频度稍低的指令操作码
111110000 111110001
16条使用频度稍低的指令操作码
111111111
不允许短码 是长码的前缀,各条指令的操作码一定不能重复
等长扩展
扩展操作码
每次扩展的操作码的位数相同。例如:4-8-12扩展法、 3-6-9扩展法、4-6-8扩展法
不等长扩展
指每次扩展的操作码的位数不相同。例如:4-6-10扩展 法、3-6-10扩展法
两种扩展方式很难证明哪一种肯定优于另外一种 实际中采用哪种方式,应考虑其他因素,比如,使用频度
扩展操作码
操作码用来表明本条 指令要求计算机完成 的操作
地址码用来给出参加 本次运算的操作数和 运算结果所在的地址
操作码
指令系统的每一条指令都有一个操作码 不同的指令用操作码字段的不同编码来表示 操作码的长度可以是固定,也可以是变化的 操作码长度固定:操作码集中在指令字的一个字段内
能有效压缩操作码的平均长度,控制复杂,指令译码、分析较难
操作码
因此,现代计算机中多采用不等长操作码——不同 类的指令,其操作码的长度不同
不等长操作码对于缩短操作码的平均长度具有明显 好处
实现不等长操作码可以通过扩展操作码法实现。
扩展操作码
实现不等长操作码可以通过扩展操作码法实现 操作码的长度随地址码的减少而增加 对于一部分不需要操作数的指令可以将指令操作码扩 展到操作数字段 不同地址的指令可以具有不同长度的操作码 在不增加指令长度的情况下,能充分利用指令的各个 字段扩展操作码的长度,使它可以表示更多的指令 通过等长扩展、不等长扩展两种方式实现
扩展操作码
0000 0001 0111
同样的要求还可采用4-5-9不等长扩展 7条使用频度最高的指令操作码
10000
10001 11110
15条使用频度稍低的指令操作码
111110000 111110001
16条使用频度稍低的指令操作码
111111111
不允许短码 是长码的前缀,各条指令的操作码一定不能重复
等长扩展
扩展操作码
每次扩展的操作码的位数相同。例如:4-8-12扩展法、 3-6-9扩展法、4-6-8扩展法
不等长扩展
指每次扩展的操作码的位数不相同。例如:4-6-10扩展 法、3-6-10扩展法
两种扩展方式很难证明哪一种肯定优于另外一种 实际中采用哪种方式,应考虑其他因素,比如,使用频度
扩展操作码
操作码用来表明本条 指令要求计算机完成 的操作
地址码用来给出参加 本次运算的操作数和 运算结果所在的地址
操作码
指令系统的每一条指令都有一个操作码 不同的指令用操作码字段的不同编码来表示 操作码的长度可以是固定,也可以是变化的 操作码长度固定:操作码集中在指令字的一个字段内
第4章 ARM7TDMI(-S)指令系统
• ARM指令集与Thumb指令集的关系
Thumb指令集 具有灵活、小 巧的特点
ARM指令集支 持ARM核所有 的特性,具有高 效、快速的特点
4.2 ARM处理器寻址方式
• 寻址方式分类
寻址方式是根据指令中给出的地址码字段来实现寻找真 实操作数地址的方式。ARM处理器具有9种基本寻址方式。
1.寄存器寻址;
个操作数是寄存器移位方式时,第2个寄存器操作数在与
第1个操作数结合之前,选择进行移位操作。寄存器移位
寻址指令举例如下:
逻辑左移3位
MOV R0,R2,LRS2L #30x01 R0 0x0585
;R2的值左0移x30位8 ,结果放入R0,
;即是R0=R2×8
ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相
MOV R0,#0xFF00 SUBSR0,R0,#1 ;R0减1,结从果放代入码R0中,获并且得影数响据标志位
R0 0x0Fx5F500 MOV R0,#0xFF000 ;将立即数0xFF000装入R0寄存器
MOV R0,#0xFF00
• 4.2.3 寄存器移位寻址
寄存器移位寻址是ARM指令集特有的寻址方式。当第2
2.立即寻址;
3.寄存器移位寻址; 4.寄存器间接寻址;
5.基址寻址;
6.多寄存器寻址;
7.堆栈寻址;
8.块拷贝寻址;
9.相对寻址。
• 4.2.1 寄存器寻址
操作数的值在寄存器中,指令中的地址码字段指 出的是寄存器编号,指令执行时直接取出寄存器值 来操作。寄存器寻址指令举例如下:
MOV SUB
R1,R2
;存储指针在保存第一个值之后增加, ;增长方向为向上增长。
计算机组成原理(第三版)第 4 章 指令系统汇编
OP D
内存
有效地址 EA=[D]; [EA]= DATA; • 例如: ADD A,@[3050H] MOV A,@[3050H]
… EA … DATA
EA
INFO DEPT@ZUFE HANGZHOU.CHINA
5、寄存器寻址方式 ( Register Addressing )
寄存器寻址:操作数存放于指令的操作码所规定的寄存 器中即操作数位于寄存器中,操作数所在的寄存器编号 存放在指令的REG字段中。 • →速度快、指令短,操作数在CPU中; • 指令格式:
内存
有效地址 EA=[PC或IP]+D; [EA]=DATA (指令);
EA→
…
指令 …
D • 例如:JR SUB1-$
INFO DEPT@ZUFE HANGZHOU.CHINA
;
10、堆栈寻址 ( Stack Addressing )
• 操作数位于存储器中,操作数所在的存储器地址 EA由堆栈指针寄存器SP隐含指出,通常用于堆栈 指令。 • 堆栈是由若干个连续主存单元组成的先进后出( first in last out,即FILO)存储区,第一个放 入堆栈的数据存放在栈底,最近放入的数据存放 在栈顶。栈底是固定不变的,而栈顶是随着数据 的入栈和出栈在时刻变化。栈顶的地址由堆栈指 针SP指明。 • 一般计算机中,堆栈从高地址向低地址扩展,即 栈底的地址总是大于或等于栈顶的地址,称为堆 栈向上生成;堆栈寻址主要用来暂存中断和子程 序调用时现场数据及返回地址。
OP* MOD REG CPU 寄存器组
R0 … Ri
有效地址 EA=REG; [REG]= DATA; • 例如: EA→ ADD A, Ri ; MOV A, Ri ;
内存
有效地址 EA=[D]; [EA]= DATA; • 例如: ADD A,@[3050H] MOV A,@[3050H]
… EA … DATA
EA
INFO DEPT@ZUFE HANGZHOU.CHINA
5、寄存器寻址方式 ( Register Addressing )
寄存器寻址:操作数存放于指令的操作码所规定的寄存 器中即操作数位于寄存器中,操作数所在的寄存器编号 存放在指令的REG字段中。 • →速度快、指令短,操作数在CPU中; • 指令格式:
内存
有效地址 EA=[PC或IP]+D; [EA]=DATA (指令);
EA→
…
指令 …
D • 例如:JR SUB1-$
INFO DEPT@ZUFE HANGZHOU.CHINA
;
10、堆栈寻址 ( Stack Addressing )
• 操作数位于存储器中,操作数所在的存储器地址 EA由堆栈指针寄存器SP隐含指出,通常用于堆栈 指令。 • 堆栈是由若干个连续主存单元组成的先进后出( first in last out,即FILO)存储区,第一个放 入堆栈的数据存放在栈底,最近放入的数据存放 在栈顶。栈底是固定不变的,而栈顶是随着数据 的入栈和出栈在时刻变化。栈顶的地址由堆栈指 针SP指明。 • 一般计算机中,堆栈从高地址向低地址扩展,即 栈底的地址总是大于或等于栈顶的地址,称为堆 栈向上生成;堆栈寻址主要用来暂存中断和子程 序调用时现场数据及返回地址。
OP* MOD REG CPU 寄存器组
R0 … Ri
有效地址 EA=REG; [REG]= DATA; • 例如: EA→ ADD A, Ri ; MOV A, Ri ;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§4.1 指令系统概述
一、 概念 指令系统:一台机器所包含的全部指令 不同的计算机,其用途不同,系统结构不同, 采用的硬软件技术不同,其指令系统的功能也 不同,有的强大,有的弱小,但其指令不外乎 以下几类: 1. 算逻运算类 2. 数据传送类 3. 指令控制类 4. I/O类 5. 其它:停机
§4.1 指令系统概述
一、 概念
计算机语言有:
机器语言:0、1代码,机器可直接识别;
汇编语言:符号化、需汇编程序翻译; 高级语言:B、F、C、P…需翻译(编译或解释)
机器语言是以机器指令的形式书写的语言,其它类型的语 言只有变成机器指令的形式,机器才能直接执行。 高级语言与计算机的硬件结构及指令系统无关,汇编语言 依赖于计算机的硬件结构和指令系统。不同的机器有不同 的指令,所以用汇编语言编写的程序不能在其他类型的机 器上运行。
第四章
§4.1 §4.2 §4.3 §4.4
指令系统
指令系统概述(掌握) 指令格式(重点) 寻址方式(重点) 指令类型
§4.1 指令系统概述
一、 概念
指令:指示机器执行某种操作的命令。 指令码:表示一条指令意义的二进制代码。 指令格式:指令码的编码规则称为指令格式。一条指令由 操作码和操作数两部分组成。
原则: ① 尽可能短(节省存储空间、减少访存次数、提高指令的 执行速度) ② 等于字节的整数倍 (充分利用存储空间) 在一个指令系统中,若所有指令的长度都是相等的,称为定长指令 字结构; 若各种指令的 长度随指令功能而异,称为变长指令字结构。 单字长指令:指令字长=机器字长 半字长指令:指令字长=1/2机器字长 双字长指令:指令字长=2倍机器字长
§4.1 指令系统概述
一、 概念
机器字长:指计算机能直接处理的二进制数据的位数,它决定 了计算机的运算精度。机器字长通常与主存单元的位数一致; 指令长度:指令码中二进制码的位数。它取决于操作码字段的 长度、 操作数地址的个数及长度。指令长度可以等于机器字长, 也可以大于或小于机器字长。
§4.2 指令格式
4.2.1 指令的组成 (2)非规整型(变长编码)
指令操作码的长度不尽相同 将使用频率较高而地址码要求较多的指令用较少位表示操 作码;对地址码位数要求较少的指令,用较多位表示操作 码;对无操作数的指令,整个指令字均用作操作码。 优点:在比较短的指令字中,既能表示出比较多的指令条数, 又能尽量满足操作数地址的要求。 缺点:计算机的硬件设计复杂,指令译码和执行速度较慢。 (增加了硬件设计的复杂性) 适应:适用于字长较短的计算机系统,如16位或16位以下的 微型和小型计算机。 以上两种方案,操作码一般在指令字的最高位部分。
§4.2 指令格式
4.2.1 指令的组成 指令操作码的编码有两种组织方式:规整型和非规整型 (1)规整型(定长编码): 每条指令的操作码长度均相同
指令条数m与指令操作码字段的位数N之间关系:m2N
优点:简化了计算机的硬件设计,提高了指令译码和识别速度。 缺点:当指令长度较短时,操作数地址的位数就会严重不足。 适用:用于字长较长的大中型机或超小型机的指令系统,如32 位或32位以上。 举例:IBM370 机(字长32位),OP 8位 规整性 规整性是指指令操作的对称性和匀齐性,指令格 式与数据格式的一致性。
对称性:指在指令系统中,所有的寄存器和存储单元
都可同等对待,这对简化程序设计,提高程序的可读 性非常有用。 匀齐性:是指一种操作性质的指令可以支持各种数据 类型。 指令的格式与数据格式的一致性:是指指令长度与数 据长度有一定关系,以方便存取和处理。
操作码:指明本条指令的操作性质和功能。如算术运算、逻辑运 算、存数、取数、转移等。每条指令分配一个确定的操作码。 操作数:指出该条指令涉及的操作数有关的信息;如:直接给出 操作数本身或者操作数的地址。
指令系统:一台计算机所能执行的全部指令的集合。 程序:使计算机执行某个特定任务的一系列指令序列。
§4.1 指令系统概述
二、对指令系统的基本要求 4、兼容性 兼容性一般是指计算机的体系结构设计基本相同, 机器之间具有相同的基本结构、数据表示和共同 的基本指令集合。
系列机:基本指令系统相同,基本结构相同的一系列
计算机。一个系列有多种型号,各型号的结构基本相 同,由于推出的时间不同,所采用的器件不同,故结 构、性能有差异,但系列机必须做到一点:软件兼容 (向上)---新机种的指令系统一定包含所有旧机种 的所有指令系统,以保证在旧机种上运行的各种软件, 可以不加修改地在所机种上运行
§4.1 指令系统概述
二、对指令系统的基本要求
1、完备性 一台计算机中最基本的、必不可少的指令构成了指令系统的完 备性。使系统能提供足够的指令用于编程;如:加、减、乘、除 都有,若只有加法、移位指令,乘法:只能用加法、移位实现, 速度慢 2、有效性 有效性是指利用该指令系统所提供的指令编制的程序能够产生 高效率。高效率主要表现在空间和时间方面,即占用存储空间小、 执行速度快。采用该指令系统编的程序能高效地运行:速度快、 占内存少。即:指令格式要短,多用寄存器寻址,少访内存。
§4.2 指令格式
指令格式与机器的字长、存储器的容量及指令的功能密切相关。 4.2.1 指令的组成 两个字段:操作码字段+操作数地址字段:
操作码字段OP
地址码字段A
一、操作码 操作码是指明指令操作性质的命令码。它提供指令的操作控 制信息。 每条指令都要求它的操作码必须是独一无二的位组合。 指令系统中指令的个数N与操作码的位数n,必须满足关系式: N≤2n
§4.2 指令格式
4.2.1 指令的组成
举例:PDP-11是16位的小型机,采用变长操作码。
7位操作码: 0111XXX 地址码1 地址码2
8位操作码: 10位操作码: 16位操作码:
10000XXX 10000101XX
位移或常数 目标地址
0000000000000XXX