- 机器指令
- 操作数类型和操作类型
- 寻址方式
- 指令格式举例
- RISC技术
指令系统是软件和硬件之间的桥梁
机器指令
指令格式:
操作码:[做啥操作]
长度固定、以及可变
扩展操作码:操作码位数随地址数的减少而增加
地址码
地址码用来指出该指令的原操作数的地址(一个或两个)、结果的地址以及下一条指令的地址。
四地址 —PC—>三地址-->二地址(操作结果存储在ACC)--》一地址--》0地址(将数据全部存储在ACC中)
减少地址码个数,增加地址码寻址范围。
寻址方式
指令字长:固定、可变
取决于:
- 操作码长度
- 操作数地址长度
- 操作数地址个数
小结:
当用一些硬件资源(寄存器)代替指令中地址码后:
- 可扩大寻址范围
- 缩短指令字长
- 减少访存次数
当指令的地址字段为寄存器时:
- 缩短指令字长
- 指令执行阶段不访存
操作数类型和操作种类
操作数类型:
地址、数字、字符、逻辑数
地址 | 无符号整数
字符 | ASCII
数字 | 定点、浮点、十进制
逻辑数 | 逻辑运算
数据在存储器中存放方式
字节编址
- 从任意位置开始存储
按顺序存储,优点:空间利用率高,缺点,访存效率低 - 从一个存储字的起始位置开始访问
任意一个周期内均可访存完成,缺点:空间浪费 - 边界对齐方式
数据存放的起始地址是数据长度的整数倍,从地址整数倍开始访问。[由于不同的机器数据字长不同,每台机器处理的数据字长也不统一,为了便于硬件实现,通常要求多字节的数据在存储器的存放方式能满足“边界对准”的要求。]
本方法优点兼顾以上两种。
操作类型:
- 数据传送[move、store、load、pop、push]
- 算数逻辑操作
- 移位操作[算数、逻辑]
- 转移[1.有条件2.无条件3.调用和返回、跳过下一条指令,如果=0就跳转]
- 陷阱和陷阱指令[异常《空指针、下标越界》]
- 输入输出[IO对外部设备端口内容传输到cpu寄存器中]
寻址方式
下一条指令的地址
指令寻址
指令寻址分顺序寻址和跳跃寻址。顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址;跳跃寻址则通过转移类指令来实现。
数据寻址
- 立即寻址
- 直接寻址
- 隐含寻址
- 间接寻址[操作数地址保存在指定内存单元中、2次访存]
间接寻址执行指令阶段有2次访存,可以扩大寻址的范围,便于编制程序。 - 寄存器寻址[有效地址就是寄存器编号、不访存、CPU内部访问寄存器就够了]
- 寄存器间接寻址[操作数地址保存在内存中、便于编写循环程序]
- 基址寻址[专用的寄存器作为基址寄存器]
基址寻址EA=(BR)+ A,其中BR为基址寄存器(专用),也可用通用寄存器作为基址寄存器。 - 变址寻址[便于处理数组循环遍历问题]
- 相对寻址[相对当前指令的偏移量]
- 堆栈寻址
指令格式
设计指令格式时考虑的因素包括指令系统的兼容性,操作类型,数据类型,指令格式,寻址方式和寄存器个数等。
RISC
简化指令集计算机
80-20规律
- 80-20规律是指典型程序中80%的语句仅仅使用处理机中20%的指令。
- 执行频率高的简单指令,因为复杂指令存在,执行速度无法提高。
RISC技术
使用20%的简单指令组合的方式,实现80%复杂指令的功能。
RISC特征
CISC特征
RISC 比较 CISC