7.2指令系统设计

SyEic_L MVP++

1.操作数和寻址方式

数据类型

  • 地址(指针):无符号整数,寄存器编号
  • 数值数据
    • 定点数:一般二进制补码
    • 浮点数:IEEE754标准
    • 十进制数:NBCD码
  • 位、位串、字符、字符串
    用来表示文本、声音、图像
  • 逻辑(布尔)数据

操作数存放在寄存器内存单元中,也可以立即数的方式直接出现在指令中

寻址方式

  • 寻址方式:指令操作数地址的指定方式

  • 地址码编码由操作数的寻址方式决定

  • 指令的寻址——简单

    • 正常:PC增值
    • 跳转(jump、branch、call、return):与操作数的寻址相同
  • 操作数寻址——复杂

    • 操作数来源:寄存器、栈顶、IO端口
    • 操作数结构
  • 寻址方式的确定

    • 没有专门的寻址方式位(由操作码确定)
    • 有专门的寻址方式位
  • 有效地址的含义(存放在内存中才涉及)

    • 操作数所在存储单元的地址
    • 可通过指令的寻址方式和地址码算出有效地址

基本寻址方式

A = 地址字段值 R = 寄存器编号 EA = 有效地址 (X)= X中的内容

  1. 立即数
  2. 直接
  3. 间接
  4. 寄存器直接
  5. 寄存器间接
  6. 偏移:EA = A + (R)
    • 相对寻址:指令地址码给出一个偏移量(带符号数),基准地址R隐含由PC给出:EA = (PC) + A
      可用来实现程序的浮动或指定转移目标地址
    • 基址寻址:基址地址R明显或隐含由基址寄存器B给出:EA = (B) + A
    • 变址寻址:指令地址码给出一个基准地址,偏移量是无符号数,由R明显或隐含由变址寄存器I给出:
      EA = (I) + A
      可用于数组寻址

2.操作类型和操作码编码

  • 操作码编码
    • 定长操作码法
    • 扩展操作码编法
  • instructions size
    • 代码长度更重要时:采用变长指令字、变长操作码
    • 性能更重要时:采用定长指令字、定长操作码
  • 下一条指令
    • 正常情况隐含在PC中——顺序执行
    • 改变顺序时由指令给出
      • 指令中显示给出“下条指令地址”
      • 条件转移指令:根据Condition Codes转移

3.标志信息的生成与使用

4.指令系统风格

  • 累加器型指令系统
  • 栈型指令系统
  • 通用寄存器型指令系统(CISC)
  • Load/Store型指令系统(RISC)

5.异常和中断处理

  • 中断:CPU终止原来正在执行的程序,转到处理异常情况或特殊事件的程序去执行,结束后再返回断点继续执行

  • 内部异常:CPU内部发生的意外事件或特殊事件

    • 硬故障中断:电源断电等
    • 程序性中断:溢出、非法指令、除数为0等
  • 外部中断:通过中断请求信号向CPU发出请求

    • 如打印机缺纸等
  • Title: 7.2指令系统设计
  • Author: SyEic_L
  • Created at : 2025-04-19 17:42:45
  • Updated at : 2025-04-19 17:42:45
  • Link: https://blog.syeicl.vip/2025/04/19/7-2指令系统设计/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments