202. 汇编语言

说明

书籍 PC Assembly Language by Paul A. Carter

introduction

computer organization

register

  • general purpose registers

    • AX, BX, CX, DX

    • 用途

      • data movement

      • arithmetic instructions

    • 特性

      • 可分为两个8bit寄存器, 如AX=AH+AL
  • index registers

    • SI, DI

    • 用途

      • 用作 pointer

      • 和通用寄存器可用作相同的用途

    • 特性

      • 不可分为8bit的寄存器
  • segment registers

    • CS, DS, SS, ES

    • 用途

      • CS: 表示 Code Segment
      • DS: 表示 Data Segment
      • SS: 表示 Stack Segment
      • ES: 表示 Extra Segment, 也可以用作一个临时段存储器
  • Instruction Pointer(IP) register

    • IP

    • 用途

      • 和CS寄存器一起用以追踪CPU执行的下一条指令地址
  • FLAGS register

    • FLAGS

    • 用途

      • 存储上一条指令结果
    • 特性

      • 并不是所有的指令都可以修改 FLAGS 的 bits
  • extra registers

    • EAX, EBX, ECX, EDX

    • 特性

      • EAX就是AX的拓展, 不用AX而用EAX是为了向后兼容

      • AX就是EAX的低16bit, 类似于AL相对于AX, 但是不能直接访问EAX高16bit

  • 段寄存器

    • FS, GS

    • 用途

      • extra temporary segment registers (like ES)
  • 字(word)定义

    CPU中的数据寄存器(data register)的大小, 在8086发布时被定位为16bit(2Byte), 但是到80836, 即便是寄存器大小改变了, 但并未改变word的定义, 依旧是16bit(2Byte)