教材:《计算机组成原理》第二版
作者:唐朔飞
出版社:高等教育出版社
目录
7.1机器指令
7.1.1指令的一般形式
1.操作码
(1)用来反映机器做什么操作
(2)长度固定
- 用于指令字长较长的情况,RISC--例如:IBM 370,操作码8位
(3)长度可变
- 操作码分散在指令字的不同字段中
(4)拓展操作码技术--操作码的位数随地址数的减少而增加
2.地址码
(1)四地址
(2)三地址
(3)二地址
(4)一地址
(5)零地址 ——无地址码
2.指令字长
- 指令字长取决于:操作码的长度、操作数地址的长度、操作数地址的个数
- 指令字长固定:指令字长=存储字长
- 指令字长可变:按字节的倍数变化
3.总结
当用一些硬件资源代替指令字中的地址码字段后
- 可以扩大指令操作数的寻址范围
- 可以缩短指令字长
- 可以减少访存字数
当指令的地址字段为寄存器时
- 三地址OP R1,R2,R3
- 二地址OP R1,R2
- 一地址OP R1
- 可缩短指令字长
- 指令执行阶段不访存
7.2操作数类型和操作种类
1.操作数类型
地址——无符号整数
数字——定点数、浮点数、十进制数
字符——ASCII
逻辑数——逻辑运算
2.数据在存储器中的存放方式
3.操作类型
(1)数据传送
(2)算术逻辑操作
(3)移位操作
- 算术移位
- 逻辑移位
- 循环移位 (带进位和不带进位)
(4)转移
- 无条件转移JMP
- 条件转移
- 调用和返回
(4)陷阱(Trap)与陷阱指令
4.输入输出
7.3寻址方式
- 寻址方式——确定本条指令的操作数地址 下一条欲执行指令的指令地址
- 指令寻址和数据寻址
7.3.1指令寻址
7.3.2数据寻址
1.立即寻址
2.直接寻址
3.隐含寻址
4.间接寻址
5.寄存器寻址
6.寄存器间接寻址
7.基址寻址(专用寄存器/通用机寄存器)
(1)专用寄存器作基址寄存器
(2)通用寄存器作基址寄存器
8.变址寻址
9.相对寻址
例1:相对寻址
例2:按字节寻址的相对寻址
10.堆栈寻址
(1)堆栈的特点
(2)堆栈的举例
(3)SP的修改与主存编制方法有关
7.4指令格式举例
7.4.1设计指令格式时应考虑的各种因素
1.指令系统的兼容性
2.其他因素
- 操作类型--包含指令个数及操作的难易程度
- 数据类型--确定哪些数据类型可参与操作
- 指令格式--指令字长是否固定
- 寻址方式--指令寻址、操作书寻址
- 寄存器个数--寄存器的多少直接影响指令的执行时间
7.4.2指令格式举例
1.PDP-8 -- 指令字长固定12位
2.PDP-11 -- 指令字长16/31/48/位三种
3.IBM 360
4.Intel 8086
(1)指令字长1-6个字节
- INC AX 1字节
- MOV WORD PTR[0104],0138H 6字节
(2)地址格式