当前位置:文档之家› 计算机组成原理 指令系统

计算机组成原理 指令系统


示例
17 17 0 0 100 100 5位 rd 5位 address 6位 shamt funct 32 34
add $s1,$s2,$s3 sub $s1,$s2,$s3 lw $s1,100($s2) sw $s1,100($s2) 所有MIPS指令都是32位 算术指令格式 数据传送指令格式
4.4
指令和数据的寻址方式
在存储器中,操作数或指令字写入或读出的3种方式——地址 指定方式、相联存储方式和堆栈存取方式;几乎所有的计算机, 内存中都采用地址指定方式
寻址方式——采用地址指定方式时,形成操作数或指令地
址的方式 指令寻址方式比较简单;数据寻址方式比较复杂
4.4.1 指令的寻址方式
一种是顺序寻址方式 另一种是跳跃寻址方式
MIPS汇编语言 类别 指令 算术 运算 加 示例 add $s1,$s2,$s3 语义 $s1=$s2+$s3 说明 3个操作数,都在寄存器中

sub $s1,$s2,$s3
$s1=$s2-$s3
3个操作数,都在寄存器中
数据从存储器到寄存器 数据从寄存器到存储器
数据 取字 lw $s1,100($s2) $s1=Memory[$s2+100] 传送 存字 sw $s1,100($s2) Memory[$s2+100]=$s1
(1) 微指令:微程序级的命令,属于硬件 (2)宏指令:由若干机器指令和伪指令构成的软件指令 (3) 机器指令(指令):介于微指令与宏指令之间,每条指令可完成 一个独立的算术运算或逻辑运算
3. 指令系统:一台计算机中所有机器指令的集合
目录
4. 指令系统的发展 50年代——只有定点加减、逻辑运算、数据传送、转移等十 几至几十条指令 60年代后期——增加了乘除运算、浮点运算、十进制运算、 字符串处理等,指令多达一二百条,寻址方式也趋多样化 60年代后期——开始出现系列计算机 70年代末期——CISC(Complex Instruction Set Computer) RISC(Reduced Instruction Set Computer) 系列计算机——基本指令系统、体系结构相同的一系列计算机 系列计算机必要条件——同一系列的各机种有共同的指令集;且 实现“向上兼容”
4. Pentium指令格式
指令字长度可变:112字节,典型的CICS结构
1或2 操作码 Mod 2位 0或1 Reg或操作码 3位 R/M 3位 0或1 比例S 变址I 2位 3位 基址B 3位 0,1,2,4 位移量 0,1,2,4 立即数
由操作码、Mod-R/M、SIB、位移量、立即数字段组成,除操 作码字段外,其他四个字段均可选
4.1.3 低级语言与硬件结构的关系 低级语言分机器语言(二进制)和汇编语言(符号) 高级语言与低级语言的性能比较:
高级语言的语句和用法与具体机器的指令系统无关 低级语言和具体机器的指令系统密切相关
机器语言是机器能直接识别和执行的惟一语言 汇编语言与硬件关系密切,编写的程序紧凑、占内存小、速 度快,适合编写经常与硬件打交道的系统软件 高级语言不涉及机器的硬件结构,通用性强、编写程序容易, 适合编写与硬件没有直接关系的应用软件
4.2.5 指令格式举例 1. 八位微型计算机(字长8位)的指令格式
——可变字长形式:单字长、双字长、三字长指令 操作码 操作码 A1
单字长指令
双字长指令
操作码
A1
A2
三字长指令
内存按字节编址,每执行一条指令后,指令地址的修正 ——加1、加2、加3
2. MIPS R4000指令格式——RISC
返回到 举例
CISC和RISC

CISC——复杂指令系统计算机,多达几百条 RISC——精简指令系统计算机
研制周期长,不易调试维护,且造成硬件资源浪费


从CISC转变到RISC的原因

指令系统百分比的20:80规律 降低控制器设计难度
4.1.2 指令系统的性能要求 一个完善的指令系统应满足的条件:
1. 完备性 指令丰富、功能齐全、使用方便——用汇编语言编各 种程序时,直接提供的指令足够用 2. 有效性 程序占存储空间小、执行速度快 3. 规整性 对称性、匀齐性、指令格式和数据格式的一致性 对称性:所有的寄存器和存储器单元都可同等对待;所有的指 令都可使用各种寻址方式 匀齐性:一种操作指令可支持各种数据类型 指令格式和数据格式的一致性:指令长度和数据长度有一定关 系,方便处理和存取 4. 兼容性 “向上兼容”
(1)无符号字节:用于逻辑和整数算术运算,由存储器读出装入 通用寄存器时左端以0填充 (2)无符号半字:与“无符号字节”类似,长度16位 (3)有符号半字:用于16位算术运算,装入寄存器时要符号扩展 (4)无符号字:用于32位逻辑运算,或作地址指针 (5)有符号字:用于32位算术运算 (6)无符号双字:用作64位地址指针 (7)字节串:长度0128个字节 (8)浮点数:支持IEEE754定义的单精度、双精度浮点类型
指令格式举例1 [例1] 已知指令格式,OP为操作码,试分析其特点
15 OP 9 8 —— 7 4 3 0 源寄存器 目标寄存器
[解 ]: (1)单字长二地址指令 (2)操作码字段OP为7位,可指定128条指令 (3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个)—— RR型指令 (4)这种指令结构常用于算术逻辑运算类指令
高级语言与低级语言的比较
比较内容 1 对程序员的训练要求: (1) 通用算法 (2) 语言规则 (3) 硬件知识 2 对机器独立的程度 3 编制程序的难易程度 4 编制程序所需时间 高级语言 有 较少 不需要 独立 易 短 低级语言 有 较多 需要 不独立 难 较长 短 少
5 程序执行时间 较长 6 编译过程中对计算机资源 多 (时间和存储容量)的要求
关于地址码个数的有关说明 (1)零地址指令
操作码
两种情况: 一是该指令不需要操作数,如NOP指令 二是操作数隐含,如DAA操作数隐含于累加器AC中
(2)一地址指令(单操作数指令)
操作码
A1
也有两种情况: 一是指令本身只需要一个操作数,如NOT指令 二是被操作数和结果隐含于累加器AC中 AC ← (AC) OP (A) (A)表示地址为A的内存或通用寄存器中的数
4.2.3 指令字长度 机器字长:计算机能直接处理的二进制数的位数 指令字长度:指令字包含二进制代码的位数,等长、变长两种 等长指令字结构:结构简单,且指令字长度不变 变长指令字结构:结构灵活,但控制较复杂
设L为指令字长度,N为机器字长度 L=N——单字长指令 L=0.5N——半字长指令 L=2N——双字长指令
4.4.2 操作数基本寻址方式
——形成操作数的有效地址的方法 例如,一种单地址指令的结构如下所示
操作码OP
变址X
间址I
形式地址A
指令中的地址码由形式地址和寻址方式特征位等组合形成 寻址过程就是把操作数的形式地址,变换为有效地址
具体的寻址方式有:
隐含寻址 立即寻址
直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 偏移寻址(基值、变址、相对) 堆栈寻址 段寻址
指令格式举例2 [例2] 试分析下面指令格式的特点
15 OP 10 9 8 - 位移量(16位) 7 4 3 0 源寄存器 变址寄存器
[解 ]: (1)双字长二地址指令,用于访问存储器 (2)操作码字段OP为6位,可以指定64种操作 (3)一个操作数在源寄存器(共16个),另一个操作数在存储器 中(由变址寄存器和位移量决定)——RS型指令
指令格式举例3
[例3] MIPS R4000汇编语言中,寄存器$s0$s7对应寄存器号为 16 23(十进制),寄存器$t0$t7对应寄存器号为8 15。下表列出 了2条R型指令(add、sub),2条I型指令(IW、SW)的汇编语言表示。 请将4条汇编语言手工翻译成对应的机器语言(十进制)表示
目录
1. 顺序寻址方式
(PC)+1 -> PC
PC 100 +1
内存 100 101
设臵程序计数器(指令指针寄存器)PC对指令的顺 序号计数,该顺序号就是指令在内存中的地址
2. 跳跃寻址方式
目标地址->PC PC 100 103 主存 Jmp 103 100
101 102 103
跳跃寻址——下条指令的地址码由本 条指令给出
能处理——字节(8位)、字(16位) 、双字(32位) 、四字(64位) 字、双字、四字的起始地址无要求 当通过32位数据总线存取数据时,双字的起始地址能被4整除 Pentium的数据类型
目录
4.3.3 Power PC数据类型
Power PC——RISC 可处理——字节(8位)、半字(16位) 、字(32位) 、双字(64位) 能识别的数据类型:
5位 rt rt
4.3 操作数类型
4.3.1 一般的数据类型 地址数据:可看成无符号数 数值数据:常用的三种类型:定点数、浮点数、压缩BCD 字符数据:文本数据或字符串,目前广泛使用ASCII码 逻辑数据:将一个数据看成由若干位组成——可对具体的位进
行布尔逻辑运算
4.3.2 Pentium数据类型
指令格式举例3
$s0$s7对应寄存器号为16 23 [解]: MIPS机器语言表示如表所示
4条指令的机器语言
MIPS指令 字段值
说明
名称
add sub lw sw 字段大小 R型 I型
格式
R R I I R I 0 0 35 43 6位 op op 18 18 18 18 5位 rs rs 19 19 17 17
关于地址码个数的有关说明(续) (3)二地址指令(双操作数指令)
操作码 A1Leabharlann A2 A1← (A1) OP (A2) 按操作数的物理位臵不同又分为:SS型、RR型、RS型指令
相关主题