CPU:
机器指令:
-
指令格式:
操作码 地址码 寻址方式 -
一般指令格式:
-
扩展操作码技术
- 为了支持操作码长度可变
- 保留码点方式
需要遵守,短操作码不能是长操作码的前缀
-
地址码
四地址通过将下一条地址放入PC中,删除A4空间,变为三地址,寻址范围变大。
在三地址中可以通过将操作结果放入到一个知道的操作数中,这样就可以从三地址变为两地址,寻址范围又增加了。
若将操作结果指定放入acc寄存器中,这样也可以减少一次访存操作
当我们的一个操作数指定存放在acc中,这样我们就可以再减少一个操作数地址,访存范围增加,且只需要两次访存操作。 -
指令字长
- 固定长度,可变字长
- 取决于什么:
- 操作码长度
- 操作数长度
- 操作数个数
- 指令字长固定:
- 指令字长=存储字长,这样当我们取一条指令的时候,只需要一次访存操作
- 指令字长可变:
- 按字节倍数变化,如果不按照字节倍数,取出的数据还需要就绪其他的处理,且PC寄存器不好设计
- 当使用一些硬件资源代替指令字中的地址码字段后
- 可以扩大指令寻址范围
- 缩短指令字长
- 减少访存次数
- 当指令地址字段为寄存器
- 缩短指令字长
- 指令执行阶段可以不访存
操作数类型和操作种类:
- 操作数类型:
- 地址 无符号整数
- 数字 定点数,浮点数,十进制数
- 字符 ascii
- 逻辑数 逻辑运算
- 数据在存储器中的存放方式
- 大小端方式
- 大端:高位数存放在高地址
- 小端:高位数存放在低地址
- 字节编址,数据在存储器中的存放方式(存储字长64,机器字长32)
- 操作类型:
- 数据传输指令
- 算数逻辑指令
- 移位操作
- 转移指令
- 无条件转移
- 条件转移
- 调用和返回
- 陷阱
- 意外事故中断
- 不提供给用户直接使用,出现事故,CPU自动调用
- 输入输出
寻址方式:
- 寻址方式:确定本条指令的操作数地址,下一条要执行指令的指令地址
- 指令寻址和数据寻址
- 指令寻址:
- 顺序:PC+1->PC
- 跳跃:由转移指令指出
- 数据寻址:
-
立即寻址:
-
直接寻址:
-
隐含寻址:
-
间接寻址:
-
寄存器寻址:
-
寄存器间接寻址:
-
基址寻址:
-
变址寻址:
-
相对地址
jmp指令的跳转位置就是相对于当前指令的偏移量
-
堆栈寻址:
通过指定的堆栈指令操作
-