指令系统概述
这里写目录标题
指令
计算机程序是由一系列机器指令
组成
指令就是要计算机执行某种操作的命令,从层次结构来说,计算机指令有微指令,机器指令,宏指令
本章讨论的是机器指令,介于其他二者之间
指令系统
一台计算机中所有机器指令的集合
指令字长
指的是指令包含的二进制位数
与机器字长相比:单子长,双子长,半字长等长度指令
单子长
:只有操作码,没有操作数
双字长
:包含操作码合操作数
多字长指令
:
解决寻址较大存储空间的问题
取指多次访问主存,影响速度,占用空间大
指令的分类
指令基本结构
:操作码字段(OP)+地址码(指定参与操作的操作数
)字段(A)
操作码
其中组成操作码字段的位数却决于计算机指令系统的规模,较大的指令系统需要更多的位数表示每条特定的指令。
一般来说一个包含
n
n
n 位的操作码最多能表示
2
n
条指令
2^{n} 条指令
2n条指令
地址码
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令
1)零
地址指令的指令字只有操作码,而没有地址码。例如停机就不需要地址码,不需要操作数
2)一
地址指令只有一个地址码,它指定一个操作数,另一个错做书地址是隐含
的(故单地址能处理两个数据
。
A
C
<
−
(
A
C
)
O
P
(
A
)
AC<-(AC) OP (A)
AC<−(AC)OP(A)
3)二
地址指令通常称为双操作数指令。从操作数物理位置来说,可归结为三种类型
① 访问内存的指令格式,称为存储器存储器(SS(storage))
型指令
参与操作的数都放在内存里,从内存某单元中取操作数,操作结果存放至另一内存单元中。因此需要多次访问内存
②访问寄存器的指令格式,称为寄存器寄存器(RR(regisiter))
型指令
从寄存器中取操作数,把操作结果放到另一寄存器中,执行这类指令不需要访问内存,寄存器速度块
③寄存器-存储器(RS)型指令
既要访问内存单元,又要访问寄存器
4)三
地址指令中有三个操作数地址A1,A2,A3
A
3
<
−
(
A
1
)
O
P
(
A
2
)
A_{3} <- ( A_{1}) OP (A_{2})
A3<−(A1)OP(A2)
指令格式举例
扩展操作码
寻址方式及指令寻址
存储器既可以用来放数据,又可以存放指令。当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式
寻址方式
分为两类:指令寻址方式
和数据寻址方式
,在冯诺依曼结构中,两者交替执行,在哈弗结构中,两者独立进行
指令寻址
指令寻址方式
:顺序寻址
,跳跃寻址
顺序寻址
指令的程序序列在主存顺序存放,逐条取出并逐条执行。
CPU设置程序计数器(PC)对指令顺序号进行计数,PC开始时存放程序首地址,每执行一条指令,PC+1,取出下一条指令地址,直到程序结束
跳跃寻址
当程序转移执行的顺序时,指令的寻址采用跳跃寻址方式,跳跃指的是下条指令的地址码不是由程序计数器给出,而是由本条指令给出
操作数寻址
定义:对于内存寻址,既可以在指令中直接给出操作数的实际访存地址(有效地址
),也可以在指令的地址字段给出所谓的形式地址
。形成操作数的有效地址方法称为操作数寻址方法
一般来说,指令给出的地址码,并不是操作数的有效地址。形式地址A,也称偏移量
。
寻址过程就是把操作数的形式地址变换为操作数的有效地址过程
立即数寻址
指令的地址字段指出的是操作数本身,不是操作数地址,便于程序设计(变量赋初值),包含的操作数立即可用。
优点:便于程序设计
缺点:数据大小受字段位数限制
寄存器寻址
操作数不在主存,而在CPU的通用寄存器中,此时指令给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号
优点:不会成为数据大小制约因素,地址字段位数与计算机通用寄存器数量相关
缺点:比主存小,只是速度快,不能访问主存
直接寻址
在指令格式的地址字段直接指出操作数在内存的地址A,操作数地址直接给出不需要经过某种变换
特点:执行速度慢,范围受限
间接寻址
地址码字段给出的是操作数地址的地址,用速率换空间,在主存进行
特点:
1、访问主存两次,速度慢
2、解决寻址范围受限问题
寄存器间接寻址
地址码字段给出的是寄存器编号,读字段给的有效内容获得有效地址,再访问主存
获得操作数
特点:
1、解决直接寻址方式下地址字段位数限制访存范围大小问题
2、获得数据只需访问主存一次
3、速度快,范围增大
相对寻址
隐含引用的专用寄存器是程序计时器PC,是当前PC的内容加上指令地址字段中A的值。节省指令中地址位数
特点:
1、节省指令中地址位数,便于程序在内存块中成块移动
2、注意PC的改变对E的影响,本例中E=200+2000+2(16位字长,PC取指后+2)
基址寻址
指定一个基址寄存器
B,与本指令地址无关
特点:
1、使用基址寄存器可以访问更大的主存空间,以它为基础,加上偏移量可以访问更大的存储空间
2、对程序而言,基址值设定后不变,故要访问不同数据需修改D
变址寻址
指定一个变址寄存器X,与本指令地址无关,内容可随要求改变。
特点:
1、不改变指令即可改变数据的有效地址,可在循环中使用
寻址方式对比
指令格式设计
MIPS指令
特点
:
三种指令格式
MIPS指令集中,不单设寻址方式说明字段
寻址方式
立即数寻址
寄存器寻址
基址寻址
相对寻址
伪直接寻址
MIPS指令详解
类型
:
3寄存器R型指令
两寄存器R型指令
1寄存器R型指令
面向运算的I型指令
面向访存的I型指令
从主存取操作数
,把结果写入主存
面向数位设置的I型指令
将立即数字段的值左移16位,结果送到RT中保存
面向条件转移的I型指令