计算机组成原理指令系统方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

100
lw $s1,100($s2)
sw
I
字段大小
R型
R
I型
I
43 18 17
100
sw $s1,100($s2)
6位 5位 5位 5位 5位 6位 所有MIPS指令都是32位
op rs rt rd shamt funct
算术指令格式
op rs rt
address
数据传送指令格式
4.3 操作数类型
目录
关于地址码个数的有关说明
(1)零地址指令
操作码
两种情况: 一是该指令不需要操作数,如NOP指令 二是操作数隐含,如DAA操作数隐含于累加器AC中
(2)一地址指令(单操作数指令) 操作码
A1
也有两种情况: 一是指令本身只需要一个操作数,如NOT指令 二是被操作数和结果隐含于累加器AC中 AC ← (AC) OP (A)
多字长指令的优点、缺点
4.2.4 指令助记符
典型的指令助记符
典型指令 指令助记符 二进制操作码
加法
ADD
001
减法
SUB
010
传送
MOV
011
跳转
JMP
100
转子
JSR
101
存数
STO
110
取数
LAD
111
不同的计算机中,指令助记符的规定不同 指令助记符借助汇编程序可自动转换成相应的二进制码
4.2.5 指令格式举例
指令格式举例3
[例3] MIPS R4000汇编语言中,寄存器$s0$s7对应寄存器号为 16 23(十进制),寄存器$t0$t7对应寄存器号为8 15。下表列出 了2条R型指令(add、sub),2条I型指令(IW、SW)的汇编语言表示。 请将4条汇编语言手工翻译成对应的机器语言(十进制)表示
MIPS汇编语言
寄存器间接寻址
偏移寻址(基值、变址、相对)
堆栈寻址
段寻址
1.隐含寻址
——指令中不显式给出而是隐含着操作数的地址 例如,单地址的指令格式隐含着累加器AC为第二操作数地址
2.立即寻址
——指令的地址字段给出的是操作数本身,而不是操作数地址 不需要访问内存取数,故指令执行时间很短
计算机组成原理
武汉科技大学 计算机科学与技术学院
第四章 指令系统
本章内容
4.1 指令系统的发展和性能要求 4.2 指令格式 4.3 操作数类型 4.4 指令和数据的寻址方式 4.5 典型指令 4.6 ARM汇编语言
4.1 指令系统的发展与性能要求
4.1.1 指令系统的发展
1. 程序:解决某一实际问题的指令序列 2. 指令:要计算机执行某种操作的命令
对称性:所有的寄存器和存储器单元都可同等对待;所有的指 令都可使用各种寻址方式 匀齐性:一种操作指令可支持各种数据类型 指令格式和数据格式的一致性:指令长度和数据长度有一定关 系,方便处理和存取 4. 兼容性 “向上兼容”
4.1.3 低级语言与硬件结构的关系
低级语言分机器语言(二进制)和汇编语言(符号)
系列计算机——基本指令系统、体系结构相同的一系列计算机 系列计算机必要条件——同一系列的各机种有共同的指令集;且 实现“向上兼容”
CISC和RISC
CISC——复杂指令系统计算机,多达几百条
研制周期长,不易调试维护,且造成硬件资源浪费
RISC——精简指令系统计算机
从CISC转变到RISC的原因
4.4 指令和数据的寻址方式
在存储器中,操作数或指令字写入或读出的3种方式——地址 指定方式、相联存储方式和堆栈存取方式;几乎所有的计算机, 内存中都采用地址指定方式
寻址方式——采用地址指定方式时,形成操作数或指令地
址的方式 指令寻址方式比较简单;数据寻址方式比较复杂
4.4.1 指令的寻址方式
一种是顺序寻址方式 另一种是跳跃寻址方式
指令格式举例2 [例2] 试分析下面指令格式的特点
15
7
3
10
98 4
0
[解]: OP
-
-
源寄存器
变址寄存 器
(1)双字长二地址指令位,移用量于(访16问位存)储器
(2)操作码字段OP为6位,可以指定64种操作
(3)一个操作数在源寄存器(共16个),另一个操作数在存储器 中(由变址寄存器和位移量决定)——RS型指令
4.3.1 一般的数据类型 地址数据:可看成无符号数 数值数据:常用的三种类型:定点数、浮点数、压缩BCD 字符数据:文本数据或字符串,目前广泛使用ASCII码 逻辑数据:将一个数据看成由若干位组成——可对具体的位进
行布尔逻辑运算
4.3.2 Pentium数据类型
能处理——字节(8位)、字(16位) 、双字(32位) 、四字(64位) 字、双字、四字的起始地址无要求 当通过32位数据总线存取数据时,双字的起始地址能被4整除 Pentium的数据类型
4.2.3 指令字长度
机器字长:计算机能直接处理的二进制数的位数 指令字长度:指令字包含二进制代码的位数,等长、变长两种 等长指令字结构:结构简单,且指令字长度不变 变长指令字结构:结构灵活,但控制较复杂
设L为指令字长度,N为机器字长度 L=N——单字长指令 L=0.5N——半字长指令 L=2N——双字长指令
几至几十条指令 60年代后期——增加了乘除运算、浮点运算、十进制运算、
字符串处理等,指令多达一二百条,寻址方式也趋多样化 60年代后期——开始出现系列计算机 70年代末期——CISC(Complex Instruction Set Computer)
RISC(Reduced Instruction Set Computer)
目录
内存 PC
1. 顺序寻址方式 (PC)+1 -> PC
100
100
设置程序计数器(指令指针寄存器)PC对指令的顺 +1
101
序号计数,该顺序号就是指令在内存中的地址
2. 跳跃寻址方式 目标地址->PC
PC 跳跃寻址——下条指令的地址码由本 10030 条指令给出
主存 Jmp 103 100
101
类别 指令
示例
语义
说明
算术 加 add $s1,$s2,$s3 运算 减 sub $s1,$s2,$s3
$s1=$s2+$s3 $s1=$s2-$s3
3个操作数,都在寄存器中 3个操作数,都在寄存器中
数据 取字 lw $s1,100($s2) $s1=Memory[$s2+100] 数据从存储器到寄存器 传送 存字 sw $s1,100($s2) Memory[$s2+100]=$s1 数据从寄存器到存储器
ARM指令集的一种指令格式
cond F I opcode S Rn Rd operand2 4位 2位 1位 4位 1位 4位 4位 12位
4. Pentium指令格式
指令字长度可变:112字节,典型的CICS结构
1或2
0或1
0或1
0,1,2,4 0,1,2,4
操作码 Mod Reg或操作码 R/M
add(加) R 0 reg reg reg 0
32
sub(减) R 0 reg reg reg 0
34
立即数加 I 8 reg reg
lw(取字) I 35 reg reg
sw(存字) I 43 reg reg
常数或地址
常数 address address
3. RAM的指令格式——32位嵌入式处理器
指令系统百分比的20:80规律 降低控制器设计难度
4.1.2 指令系统的性能要求
一个完善的指令系统应满足的条件:
1. 完备性 指令丰富、功能齐全、使用方便——用汇编语言编各 种程序时,直接提供的指令足够用
2. 有效性 程序占存储空间小、执行速度快 3. 规整性 对称性、匀齐性、指令格式和数据格式的一致性
R型指令——所有算术运算,数据必须放在通用寄存器中
6位 5位 5位 5位 5位 6位
op rs
rt
rd shamt funct R型
I型(立即数)指令——访问存储器(存数或取数)
6位 5位 5位
16位
op
rs
rt 常数或地址(address) I型
MIPS指令的字段值
指令 格式 op rs rt rd shamt funct
1. 八位微型计算机(字长8位)的指令格式
——可变字长形式:单字长、双字长、三字长指令
操作码 操作码 A1 操作码 A1
单字长指令 双字长指令 A2 三字长指令
内存按字节编址,每执行一条指令后,指令地址的修正 ——加1、加2、加3
2. MIPS R4000指令格式——RISC
返回到 举例
字长32位,字节寻址,通用寄存器32个
指令格式举例3
$s0$s7对应寄存器号为16 23
[解]: MIPS机器语言表示如表所示
MIPS指令 字段值
4条指令的机器语言
名称 格式
示例
说明
add
R 0 18 19 17 0 32
add $s1,$s2,$s3
sub
R 0 18 19 17 0 34
sub $s1,$s2,$s3
lw
I 35 18 17
目录
4.3.3 Power PC数据类型
Power PC——RISC 可处理——字节(8位)、半字(16位) 、字(32位) 、双字(64位) 能识别的数据类型:
(1)无符号字节:用于逻辑和整数算术运算,由存储器读出装入 通用寄存器时左端以0填充 (2)无符号半字:与“无符号字节”类似,长度16位 (3)有符号半字:用于16位算术运算,装入寄存器时要符号扩展 (4)无符号字:用于32位逻辑运算,或作地址指针 (5)有符号字:用于32位算术运算 (6)无符号双字:用作64位地址指针 (7)字节串:长度0128个字节 (8)浮点数:支持IEEE754定义的单精度、双精度浮点类型
高级语言与低级语言的比较
比较内容 1 对程序员的训练要求:
(1) 通用算法 (2) 语言规则 (3) 硬件知识 2 对机器独立的程度 3 编制程序的难易程度 4 编制程序所需时间 5 程序执行时间 6 编译过程中对计算机资源 (时间和存储容量)的要求
高级语言
有 较少 不需要 独立 易 短 较长 多
高级语言与低级语言的性能比较:
高级语言的语句和用法与具体机器的指令系统无关 低级语言和具体机器的指令系统密切相关
机器语言是机器能直接识别和执行的惟一语言 汇编语言与硬件关系密切,编写的程序紧凑、占内存小、速 度快,适合编写经常与硬件打交道的系统软件 高级语言不涉及机器的硬件结构,通用性强、编写程序容易, 适合编写与硬件没有直接关系的应用软件
(A)表示地址为A的内存或通用寄存器中的数
关于地址码个数的有关说明(续)
(3)二地址指令(双操作数指令)
操作码 A1 A2 A1← (A1) OP (A2) 按操作数的物理位置不同又分为:SS型、RR型、RS型指令
(4)三地址指令
操作码 A1 A2 A3 A3← (A1) OP (A2)
A1——被操作数地址,也称源操作数地址 A2——操作数地址,也称终点操作数地址 A3——存放结果的地址 A1,A2,A3可为内存单元或通用寄存器的地址
102
103
4.4.2 操作数基本寻址方式
——形成操作数的有效地址的方法 例如,一种单地址指令的结构如下所示
操作码OP 变址X 间址I
形式地址A
指令中的地址码由形式地址和寻址方式特征位等组合形成 寻址过程就是把操作数的形式地址,变换为有效地址
具体的寻址方式有:
隐含寻址
立即寻址
直接寻址
间接寻址
ቤተ መጻሕፍቲ ባይዱ寄存器寻址
从计算机层次结构的观点看,指令可分三类: (1) 微指令:微程序级的命令,属于硬件 (2)宏指令:由若干机器指令和伪指令构成的软件指令 (3) 机器指令(指令):介于微指令与宏指令之间,每条指令可完成 一个独立的算术运算或逻辑运算
3. 指令系统:一台计算机中所有机器指令的集合
目录
4. 指令系统的发展 50年代——只有定点加减、逻辑运算、数据传送、转移等十
2位
3位
3位
比例S 变址I 2位 3位
基址B 3位
位移量
立即数
由操作码、Mod-R/M、SIB、位移量、立即数字段组成,除操 作码字段外,其他四个字段均可选
指令格式举例1
[例1] 已知指令格式,OP为操作码,试分析其特点
15 OP
9 87
43
0
—— 源寄存器 目标寄存器
[解]: (1)单字长二地址指令 (2)操作码字段OP为7位,可指定128条指令 (3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个)—— RR型指令 (4)这种指令结构常用于算术逻辑运算类指令
低级语言
有 较多 需要 不独立 难 较长 短 少
4.2 指令格式
指令字(简称指令)——表示一条指令的机器字 指令格式——指令字用二进制代码表示的结构形式
操作码字段OP 地址码字段A
4.2.1 操作码
——表征指令的操作特性与功能 位数取决于指令系统的规模,分固定位数和可变位数
4.2.2 地址码
——参与操作的操作数的地址或操作数本身 三地址指令格式、二地址格式、一地址格式和零地址格式
相关文档
最新文档