计算机组成原理课堂笔记(七)机器指令


机器指令

地址码

四地址(比较古老)




操作不灵活,从一条指令到另一条指令都是固定的
访存次数:4次

三地址




访存次数:4次

二地址




ACC是寄存器,在CPU内部,不需要访存

一地址




趋势:通过CPU内部的寄存器来减少访存次数,提高操作速度。

零地址

零地址比较特殊,一般访问的地址是默认不变的。

指令字长

指令字长取决于:

  • 操作码的长度
  • 操作数地址的长度
  • 操作数地址的个数

指令字长的两种选择:

  • 固定:指令字长=存储字长
  • 可变:按字节数的倍数变化

寻址方式

寻址方式:确定本条指令的操作数地址,如何确定下一条欲执行指令的指令地址
寻址方式分类:指令寻址、数据寻址

指令寻址

顺序: $(PC+1) → PC$
跳跃: 由转移指令指出

数据寻址




形式地址:指令字中的地址
有效地址:操作数的真实地址
约定:指令自称=存储字长=机器字长

1. 立即寻址
形式地址A就是操作数,即按照数据值寻找地址



  • 指令执行阶段不访存
  • A的位数限制了立即数的范围

2. 直接寻址
$EA=A$,有效地址由形式地址直接给出



  • 执行阶段访问一次存储器
  • A的位数决定了该指令操作数的寻址范围
  • 操作数的地址不易修改(必须修改A)

3. 隐含寻址
操作数地址隐含在操作码中




指令字中少了一个地址字段,可缩短指令字长

4. 间接寻址
$EA=(A)$,有效地址由形式地址间接提供



  • 执行指令阶段2次访存
  • 可扩大寻址范围

5. 寄存器寻址
$EA=R_i$ 有效地址即为寄存器编号

  • 执行阶段不访存,只访问寄存器,执行速度快
  • 寄存器个数有限,可缩短指令字长

6. 寄存器间接寻址
$EA=(R_i)$ 有效地址在寄存器中



  • 有效地址在寄存器中,操作数在存储器中,执行阶段访存
  • 便于编制循环程序

7. 基址寻址
(1)采用专用寄存器做基址寄存器
$EA=(BR)+A$ BR为基址寄存器



  • 可扩大寻址范围
  • 有利于多道程序
  • BR内容由操作系统或管理程序确定
  • 在程序的执行过程中BR内容不变,形式地址A可变

(2)采用通用寄存器做基址寄存器



  • 由用户指定哪个通用寄存器作为基址寄存器
  • 基址寄存器的内容由操作系统确定
  • 在程序的执行过程中$R_0$内容不变,形式地址A可变

8. 变址寻址
$EA=(IX)+A$
IX为变址寄存器(专用)
通用寄存器也可以作为变址寄存器



  • 可扩大寻址范围
  • IX的内容由用户给定
  • 在程序的执行过程中IX内容可变,形式地址A不变
  • 便于处理数组问题

9. 相对寻址
$EA=(PC+A)$
$A$是相对于当前指令的位移量



  • $A$的位数决定操作数的寻址范围
  • 程序浮动
  • 广泛用于转移指令

10. 堆栈寻址

声明:奋斗小刘|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 计算机组成原理课堂笔记(七)机器指令


Make Everyday Count