在指令系统的相关知识中,我当时踩过的坑(知识点)

指令字长取决于操作码的长度,操作数地址码的长度和操作数地址的个数,建议直接画图。

程序控制类指令(改变程序执行顺序)

  • 无条件转移指令
  • 条件转移指令
  • 子程序调用指令
  • 返回指令
  • 循环指令

扩展操作码指令格式的目的

  • 保持指令字长度不变而增加指令的数量

直接寻址范围的求法

例题:

  1. 若指令字长为32位,操作码占8位,一个地址码字段占24位,则指令操作数的直接寻址范围是2的24次方=16M
  2. 若指定字长为32位,操作码占8位,两个地址码字段各占12位,则指令操作数的直接寻址范围为2的12次方=4k
  3. 若指定长度为32位,操作码占8位,三个地址码字段各占8位,则指定操作数的直接寻址范围为2的八次方=256

指令字长位数相关问题

  • 单地址、二地址、三地址指令条数的关系取决于地址码字段的位数
  • 指令字长的根本就是操作码、地址码。半字寻址指的是半个机器字长。

一般谈到扩大寻址范围通常就是寄存器间接寻址,单独的间接寻址因为速度太慢而不常用。

变址寻址:数组问题、编制循环程序

相对寻址:跳跃寻址方式,程序的无条件转移和条件转移

基址寻址:多道程序设计、编制程序浮动

指令周期并不完全相同。

CPU的最小时间周期是时钟周期
CPU区别指令和数据是在指令周期的不同阶段。取指周期取出的是指令;执行周期,取出的是数据。

指令总是依据程序计数器从主存中读出。

取指操作是自动进行的。

指令周期的第一个记录就是取值周期,即从主存中读出指令字。

机器周期通常由存取周期决定。

不同长度的指令去取指操作可能是不同的。

cpu响应中断的时间一般是一条指令执行结束,在指令的执行周期后进入中断周期。

你可能感兴趣的:(计算机组成原理)