计算机组成原理
指令系统
指令概述
-
微指令
- 硬件
-
机器指令
- 简称指令
- 符号表示---->汇编指令
-
宏指令
- 软件
指令系统
-
指令系统分类
-
复杂指令系统计算机CSIC
-
精简指令系统计算机RSIC
- 选取使用频率最高的一些简单指令,指令条数少
- 指令长度固定,指令种类少,寻址方式种类少
- 只有取数存数指令访问存储器,其他都在寄存器中进行
-
-
性能要求
-
完备性
- 功能齐全
-
有效性
- 效率高
-
规整性
- 指令格式与数据格式一致性
-
兼容性
- 向上兼容
-
-
指令格式
-
指令字
-
指令字长度
-
一个指令字中包含二进制代码的位数,其长度应该与计算机的数据字长相匹配,以简化指令访存的操作,一般指令字长为计算机字长的整数倍。
-
分类
-
单字长指令
- 指令字长等于机器字长
-
双字长指令
- 指令字长等于两个机器字长指令
- 目的:提供足够的地址位来解决访问内存任何单元的寻址问题
- 缺点:是必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。
-
-
-
机器字长
- 计算机能直接处理的二进制数据的位数,他决定了计算机的运算精度。
-
-
结构
-
操作码OP
-
分类
-
固定长度
- 优点:编码方法简单,便于指令的译码
- 缺点:不方便指令系统中增加新的指令(扩展不方便)
-
可变长度
- 减小操作码的平均长度,提高指令编码的效率,指令的扩展方便
-
计算指令操作码的平均长度
-
-
设计
-
与地址码的设计相匹配
- 如指令长度固定的情况下,地址码数量较多的指令可以安排较短的操作码,地址码数量较少的指令中可以安排较长的操作码
-
编码
- 哈夫曼编码
-
扩展
-
-
-
地址码A
-
零地址指令
- 空操作 停止等
-
一地址指令
-
AC<-(AC)op(A)
- 指令编码中只有一个地址码,指出了参加操作的一个操作数的存储位置A
- 如果还有另一个操作数则隐含在累加器AC中
-
-
二地址指令
-
A1<-(A1)op(A2)
- eg: MOV AL ,BL
-
ADD AL,30
-
按操作数所在位置分类
- 寄存器-寄存器(RR)型指令
- 寄存器-存储器(RS)型指令
- 存储器-存储器(SS)型指令
-
三地址指令
- A3<-(A1)op(A2)
-
-
-
特点
- 指令字长
- 地址格式
-
-
寻址方式
-
指令寻址
-
目的
- 确定下一条预执行指令的指令地址
-
寻址方式
-
顺序寻址
- (PC)+1->PC 程序计数器自动加1
-
跳跃寻址
- 由转移指令JMP指出
-
-
-
数据寻址
-
目的
- 把操作数的形式地址A,变换为操作数的有效地址EA
-
寻址方式
-
隐含寻址
- 例如:单地址的指令格式,没有在地址字段指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址
-
立即寻址
- 形式地址A就是操作数本身
-
直接寻址
-
EA=A
- 直接根据读内存找到操作数,形式地址不需要经过任何处理
-
-
间接寻址
-
EA=(A)
- 有效地址由形式地址间接提供,形式地址是操作数的地址的地址
-
-
寄存器寻址
-
EA=R
- 形式地址是寄存器的编号,直接去寄存器中寻址操作数
-
-
寄存器间接寻址
-
EA=(R)
- 操作数里存放的是寄存器的编号,寄存器中存的不是操作数而是操作数的有效地址。所以操作数在存储器里。
-
-
偏移寻址
-
EA=A+(R)
- 形式地址需要和另一个寄存器中的地址相加,
形式地址A是显示的,另一个地址字段隐含在某个专用的寄存器R中
- 形式地址需要和另一个寄存器中的地址相加,
-
根据寄存器的不同类型来分类
-
相对寻址
- EX=A+(PC) ----PC程序计数器 PC存储当前正在执行指令的地址
-
基址寻址
- EA=A+(BR) BR为基地址寄存器
-
变址寻址
- EA=A+(IX) IX为变址寄存器(专用) 通用寄存器也可以作为变址寄存器
- 在程序执行的过程中IX内容可变,形式地址A不变,便于处理数组问题
-
-
-
堆栈寻址
-
-
-
-
指令分类
-
数据处理
- 算数运算型指令
- 逻辑运算型指令
-
数据存储
-
数据传送
- 输入输出类指令
- 数据传送类指令
- 指令传送类指令
- 标志传送指令
-
程序控制
- 系统控制类指令
-