【计算机组成原理】知识梳理(四)指令系统

基本概念

指令 (Instruction)
要计算机执行某种操作的命令
指令系统 (Instruction Set)
一台计算机中所有机器指令的集合
系列计算机 (Series Computer)
基本指令系统相同
基本体系结构相同
CISC(Complex Instruction Set Computer)
RISC(Reduced Instruction Set Computer)

对指令系统的要求

完备性 完备性要求指令系统丰富、功能齐全、使用方便。
有效性 有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。
规整性 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
兼容性 系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用

指令格式

操作码
操作数的地址(地址码)
操作结果的存储地址
下一条指令的地址
由程序计数器(PC)给出→顺序指令地址
由指令给出→转移目标指令地址
操作码
        指令的操作码OP 表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。
        组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令。
地址码
        根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。
三地址指令
A1: 第一个源操作数的存储地址
A2: 第二个源操作数的存储地址
A3: 操作结果的存储地址
 
二地址指令
A1: 第一个源操作数和操作结果的存储地址
A2: 第二个源操作数的存储地址
 
单地址指令
A: 既是操作数的地址 , 又是操作结果的存储地址如 +1/-1 指令

 

零地址指令
(1) 无需任何操作数 : 空操作指令
(2) 所需操作数是默认的 : 堆栈型计算机的运算类指令
多地址指令
批数据处理指令 : 字符串处理指令 , 矩阵运算指令
CDC STAR-100: 7 地址段
结论
(1) 零地址 / 一地址 / 二地址指令短 , 指令速度快 , 实现简单 , 小型机 / 微型机采用
(2) 三地址 / 多地址指令功能强 , 有利于程序设计 , 大型机采用
根据操作数的物理位置分为:
SS   存储器 - 存储器类型
RS   寄存器 - 存储器类型

                           RR   寄存器-寄存器类型​​​​​​

举例:

8 位微型计算机的指令格式
8088 ,字长 8 位,指令结构可变
包括单字长、双字长和三字长指令
操作码长度固定
PDP/11 系列机的指令格式
字长 16
单字长指令
操作码字段不固定

扩展操作码技术

 

奔腾指令格式

指令长度可变,最短 1 个字节,最长 12 个字节,还可以带前缀( 0~4 )。
典型的 CISC 指令系统

OP : 包含操作数长度
Mod/RM
Mod+R /M : 8 个寄存器 +24 种变址方式
Reg/op : 寄存器号 , 附加操作码
R/M : 寄存器号 , Mod+R /M
SS : 变址寄存器的放大因子
Index : 变址寄存器
Base : 基寄存器
Imm : 立即数 (8, 16, 32 )
Disp : 位移量 (8, 16, 32 ) 

指令长度

寻址方式

寻址方式 指令中操作数地址的表示形式。
基本寻址方式
立即数寻址
地址码部分就是指令的操作数
取操作数不必再次访问存储器
操作数不能修改 ( 为常数 )
初始化 
直接寻址
地址码直接给出操作数的地址。
A 的长度决定了指令的寻址范围
EA=A
 
间接寻址
指令的地址码部分给出的地址 A 不是操作数的地址,而是存放操作数地址的主存单元的地址 .
EA=(A)
 
寄存器寻址
在指令的地址码部分给出 CPU 内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中
可缩短指令长度

                  EA=Ri

寄存器间接寻址
将操作数放在主存储器中,而操作数的地址放在某一通用寄存器中,然后在指令的地址码部分给出该通用寄存器的编号

        EA=(Ri)

相对寻址
由程序计数器 PC 提供基准地址,而指令的地址码部分给出相对的位移量 D ,两者相加后作为操作数的有效地址
EA (PC) D  
基址寻址
指令的地址码部分给出偏移量 D ,而基准地址放在基址寄存器 R b 中,最后操作数的有效地址仍然是由基地址 A 与偏移量 D 相加而成
EA (R b ) D  
变址寻址
将指令的地址码部分给出的基准地址 A CPU 内某特定的变址寄存器 Rx 中的内容相加,以形成操作数的有效地址 方便程序浮动
EA A (Rx)  

设数据块首地址为 D,N 个数的平均值

  

堆栈寻址  

寄存器堆栈和存储器堆栈
先进后出
栈顶指示寄存器
例:设 A 为通用寄存器, SP 为堆栈指示器, M SP SP 指示器的栈顶单元
如果入栈操作的动作是:
A )→ M SP ,( SP -1→SP
那么出栈操作的动作应为:

        (SP+1→SP,(MSP)→A 

Pentium寻址方式 

16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOVOP=AHSTOOP=1BHLADOP=3CHMOV是传送指令,STO为存数指令,LAD为取数指令。

  

指令分类

数据传送类指令
一般传送指令:   MOV   AX BX
数据交换指令:   XCHG
运算类指令
算术运算指令:  加、减、乘、除以及加 1 、减 1 、比较
逻辑运算指令:  
移位指令  
程序控制类指令  
程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。
无条件转移,条件转移,调用与返回,陷阱和陷阱指令
输入和输出指令、字符串处理指令、特权指令、其他指令

RISC指令系统的发展 

IBM 公司研究员 John Cocke 1974 年发起这样的概念,他证明了用 20% 的指令即可完成 80% 的工作,这直接导致了 IBM RISC System/6000 的诞生。 Sun 公司也把这样的概念引进到其 SPARC 处理器中。而 HP 在其 NonStop AlphaServer 以及 HP9000 系列服务器中采用了三种不同的 RISC 技术,只是 HP 已经在有意地放弃这一技术。
在目前这场 RISC 运动中,起核心作用的还要数 IBM ,其 Power5 芯片已经在市场上获得盛誉,
在主要厂商中,目前只有 Sun IBM 提供 RISC 芯片

RISC指令的特点

精简指令。选取使用频率高的一些简单指令
指令长度固定
指令格式种类少
寻址方式种类少
只有 load/store 指令访问存储器,其余指令都是 RR 型指令

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaron_Liu0730

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值