acautomaton
acautomaton
发布于 2024-09-19 / 5 阅读
0
0

Chapter 4. 指令系统

Chapter 4. 指令系统

公式与性质

  • Instruction Set Architercture, ISA (指令集体系结构)规定的内容主要包括:

    1. 指令格式,指令寻址方式,操作类型,以及每种操作对应的操作数的相应规定。
    2. 操作数的类型,操作数寻址方式,以及是按大端方式还是按小端方式存放。
    3. 程序可访问的寄存器编号、个数和位数,存储空间的大小和编址方式。
    4. 指令执行过程的控制方式等,包括程序计数器、条件码定义等。
  • x86 处理器中的主要寄存器

    16bit32bit (Extended, E)说明
    AXEAX累加器 Accuulator
    BXEBX基地址寄存器 Base Register
    CXECX计数寄存器 Count Register
    DXEDX数据寄存器 Data Register
    ESI变址寄存器 Source Index Register
    EDI变址寄存器 Destination Index Regiser
    EBP堆栈基指针 Base Pointer
    ESP堆栈顶指针 Stack Pointer
    • Intel 指令格式的特征
      • 大小写不敏感。
      • 第一个为目的操作数,第二个为源操作数。
      • 寄存器和立即数不需要前缀。
      • 使用 [] 进行内存寻址。
      • 指明操作数的大小使用 byte ptr, word ptr, dword ptrword 表示 16 位;未指明长度默认为 32 位。
  • CISCRISC 的对比

    Complex Instruction Set Computer, CISCReduced Instruction Set Computer, RISC
    指令系统复杂,庞大简单,精简
    指令数目一般大于 200一般小于 100
    指令字长不固定定长
    寻址方式较多较少
    可访存指令不加限制只有 LOAD/STORE 指令
    各种指令执行时间相差较大绝大多数在一个周期内完成
    各种指令使用频度相差很大都比较常用
    通用寄存器数量较少较多
    目标代码难以优化编译生成高效的目标代码程序优化编译程序生成代码较为高效
    控制方式绝大多数使用微程序控制绝大多数使用组合逻辑控制
    指令流水线可以实现必须实现

概念

  • 某机器采用 16 位单字长指令,采用定长操作码,地址码为 5 位,现已定义 60 条二地址指令,那么单地址指令最多有 4 条。

    注意是定长而不是变长。2^6-60=4

  • 程序控制指令包括:

    1. 转移指令
    2. 循环控制指令
    3. 过程调用指令
    4. 中断控制指令
  • 循环结构语句的机器级代码一定至少包含一条条件转移指令。

    就算是死循环(循环体首尾均无条件转移)也至少需要一条条件转移指令在循环内判断何时跳出。

考点

  • 某指令系统指令长为 8 位,每一地址码长 3 位,用扩展操作码技术。若指令系统具有 2 条二地址指令、20 条零地址指令,则最多有 13 条一地址指令。

    [(2^2-2)\times 2^3 -x]\times 2^3 \ge 20, \ x \le 13.5

  • 寄存器 R1, R2 均为 16 位,指令 MOV R1,[R2] 的功能是把内存数据传送至寄存器 R1,寻址方式为寄存器间接寻址。R2 的值为 1234H,内存单元 1234H 存放数据 56H ,内存单元 1235H 存放数据 78H ,采用小端方式存储,则执行指令后 R1 的值为 7856H

    "R1的值"指真实值,需要把小端存储改回自然顺序。

  • 若采用大端存储的操作数 1234 FF00H 的地址为 EFFF FF12 ,则其最低有效字节 (Least Sigificant Byte, LSB) 所在的地址位 1234 FF15H

    该操作数占 4 个字节,最低有效字节在首地址上 +3 即可。


评论