计算机组成原理复习提纲五(指令系统)

第7章 指令系统

1.掌握指令的一般格式以及指令字各字段的作用;掌握不同的地址格式对访存次数、寻址范围的影响。

2.熟练运用扩展操作码技术。

3.指令寻址方式(顺序寻址和跳跃寻址)

  1. 顺序寻址

    顺序寻址可通过程序计数器 PC 加 1,自动形成下一条指令的地址。

    计算机组成原理复习提纲五(指令系统)

  2. 跳跃寻址

    跳跃寻址通过转移类指令实现

    计算机组成原理复习提纲五(指令系统)

数据寻址

计算机组成原理复习提纲五(指令系统)

形式地址:指令中给出的地址

有效地址:操作数的真实地址

约定:指令字长=存储字长=机器字长

  1. 立即寻址

    形式地址 A 就是操作数

    计算机组成原理复习提纲五(指令系统)
    • 指令执行阶段不访存
    • A 的位数限制了立即数的范围
  2. 直接寻址

    EA=A 有效地址由形式地址直接给出

    计算机组成原理复习提纲五(指令系统)
    • 执行阶段访问一次存储器
    • A 的位数决定了该指令操作数的寻址范围
    • 操作数的地址不易修改(必须修改 A)
  3. 隐含寻址

    操作数的地址隐含在操作码或寄存器中

    计算机组成原理复习提纲五(指令系统)
    • 指令中少了一个地址字段,可缩短指令字长。
  4. 间接寻址

    EA = (A) 有效地址有形式地址间接提供

    计算机组成原理复习提纲五(指令系统)
    • 执行指令阶段 2 次访存
    • 可扩大寻址范围
    • 便于编制程序
  5. 寄存器寻址

    EA = Ri

    计算机组成原理复习提纲五(指令系统)
    • 执行阶段不访存,只访问寄存器,执行速度快
    • 寄存器个数有限,可缩短指令字长
  6. 寄存器间接寻址

    EA = (Ri) 有效地址在寄存器中

    计算机组成原理复习提纲五(指令系统)
    • 有效地址在寄存器中,操作数在存储器中,执行阶段访存
    • 便于编制循环程序
  7. 基址寻址
    • 采用专用寄存器作基址寄存器

      EA = (BR) + A BR 为基址寄存器,真实地址为基地址加上 A

      计算机组成原理复习提纲五(指令系统)
      • 可扩大寻址范围
      • 有利于多道程序
      • BR 内容由操作系统或管理程序确定
      • 在程序执行过程中BR内容不变,形式地址 A 可变。
    • 采用通用寄存器作基址寄存器计算机组成原理复习提纲五(指令系统)

      • 用用户指定哪个通用寄存器作为基址寄存器
      • 基址寄存器的内容有操作系统确定
      • 在程序执行过程中 R 0 R_0 R0内容不变,形式地址 A 可变。
  8. 变址寻址

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

    计算机组成原理复习提纲五(指令系统)
    • 可扩大寻址范围
    • IX 的内容用用户指定
    • 在程序执行过程中IX 内容可变,形式地址A 不变
    • 便于处理数组问题
  9. 相对寻址

    EA = (PC) + A, A 是相对于当前指令的位移量(可正可负,补码)

    计算机组成原理复习提纲五(指令系统)
    • A 的位数决定操作数的寻址范围
    • 程序浮动
    • 广泛用于转移指令
  10. 堆栈寻址
    1. 堆栈的特点

      • 硬堆栈 对个寄存器
      • 软堆栈 指定的存储空间

      先进后出,栈顶地址有SP指出

      进栈: ( S P ) − 1 → S P (SP)-1 \to SP (SP)1SP,出栈: ( S P ) + 1 → S P (SP)+1\to SP (SP)+1SP

    计算机组成原理复习提纲五(指令系统)

操作数寻址方式

计算机组成原理复习提纲五(指令系统)

深刻理解不同数据寻址方式(立即寻址、直接寻址、隐含寻址、存储器间接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址、相对寻址、堆栈寻址等)的有效地址的计算方法、特点以及深刻理解不同数据寻址方式对指令执行速度(访存次数)的影响。

指令格式

计算机组成原理复习提纲五(指令系统)

课后习题

  1. 什么是指令字长、机器字长和存储字长?

    答:指令字长:是指机器指令中二进制代码的总位数。指令字长取决于从操作码的长度、操作数地址的长度和操作数地址的个数。不同的指令的字长是不同的。

    机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。即字长越长,数的表示范围也越大,精度也越高。机器的字长也会影响机器的运算速度。

    存储字长:一个存储单元存储一串二进制代码(存储字),这串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。

  2. 比较基址寻址和变址寻址的异同点。
    答:比较如下:⑴都可有效地扩大指令寻址范围。
    ⑵基址寻址时,基准地址由基址寄存器给出,地址的改变反映在位移量A的取值上;变址寻址时,基准地址由A给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器给出。
    ⑶基址寄存器内容通常由操作系统或管理程序给定,且在程序的执行过程中不可变;变址寄存器内容通常由用户给定,且在程序的执行过程中可变。
    ⑷基址寻址支持多道程序技术的应用,变址寻址适用于数组或字符串处理,适用场合不同。

  3. 比较间接寻址和变址寻址的异同点。
    答:间接寻址和变址寻址都可以扩大寻址范围,但他们形成有效地址的方式不同:间址需通过访存(若是多次间址还需要多次访存)得到有效地址;而变址需通过地址变换(将变址寄存器内容加上形式地址)得到有效地址,故通常间址指令执行时间比变址指令长。此外,两种指令的应用场合不同,变址寻址特别适用于处理数组问题。

  4. 假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。

    • 设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?
    • 采用扩展码操作技术,二地址指令最多有几种?
    • 采用扩展操作码技术,若二地址指令有P种,零地址指令有M种,则一地址指令最多有几种?

    计算机组成原理复习提纲五(指令系统)

  5. 设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可安排多少条一地址指令?

    计算机组成原理复习提纲五(指令系统)

  6. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?

    计算机组成原理复习提纲五(指令系统)

  7. 假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。

    • 设操作码固定,若零地址指令有3种,一地址指令有5种,则二地址指令最多有几种?
    • 设操作码固定,若零地址指令有3种,一地址指令有5种,则二地址指令最多有几种?

    计算机组成原理复习提纲五(指令系统)

计算机组成原理复习提纲五(指令系统)