指令字长取决于操作码的长度,操作数地址码的长度和操作数地址的个数,建议直接画图。
程序控制类指令(改变程序执行顺序)
- 无条件转移指令
- 条件转移指令
- 子程序调用指令
- 返回指令
- 循环指令
扩展操作码指令格式的目的
- 保持指令字长度不变而增加指令的数量
直接寻址范围的求法
例题:
- 若指令字长为32位,操作码占8位,一个地址码字段占24位,则指令操作数的直接寻址范围是2的24次方=16M
- 若指定字长为32位,操作码占8位,两个地址码字段各占12位,则指令操作数的直接寻址范围为2的12次方=4k
- 若指定长度为32位,操作码占8位,三个地址码字段各占8位,则指定操作数的直接寻址范围为2的八次方=256
指令字长位数相关问题
- 单地址、二地址、三地址指令条数的关系取决于地址码字段的位数
- 指令字长的根本就是操作码、地址码。半字寻址指的是半个机器字长。
一般谈到扩大寻址范围通常就是寄存器间接寻址,单独的间接寻址因为速度太慢而不常用。
变址寻址:数组问题、编制循环程序
相对寻址:跳跃寻址方式,程序的无条件转移和条件转移
基址寻址:多道程序设计、编制程序浮动
指令周期并不完全相同。
CPU的最小时间周期是时钟周期。
CPU区别指令和数据是在指令周期的不同阶段。取指周期取出的是指令;执行周期,取出的是数据。
指令总是依据程序计数器从主存中读出。
取指操作是自动进行的。
指令周期的第一个记录就是取值周期,即从主存中读出指令字。
机器周期通常由存取周期决定。
不同长度的指令去取指操作可能是不同的。
cpu响应中断的时间一般是一条指令执行结束,在指令的执行周期后进入中断周期。