了解x86-32硬件-寄存器

了解x86-32硬件-寄存器

08386的寄存器可以分为8组

  1. 通用寄存器
  2. 段寄存器
  3. 指令指针寄存器
  4. 标志寄存器
  5. 控制寄存器
  6. 系统地址寄存器
  7. 调试寄存器
  8. 测试寄存器

通用寄存器

  1. EAX: 累加器
  2. EBX: 基址寄存器
  3. ECX: 计数器
  4. EDX: 数据寄存器
  5. ESI: 源地址指针寄存器
  6. EDI: 目的地指针寄存器
  7. EBP: 基址指针寄存器
  8. ESP: 堆栈指针寄存器

段寄存器

  1. CS: 代码段(Code Segment)
  2. DS: 数据段(Data Segment)
  3. ES: 附加数据段(Extra Segment)
  4. SS: 堆栈段(Stack Segment)
  5. FS: 附加段
  6. GS: 附加段

指令寄存器和标志寄存器

  • EIP: 指令寄存器

    EIP的低16位就是8086的IP,它存储的是下一条要执行指令的内存地址,在分段地址转换中,表示指令的段内偏移地址。

  • EFLAGS: 标志寄存器

    IF(Interrupt Flag):中断标志位,由CLI,STI两条指令来控制;设置IF使CPU可识别外部(可屏蔽)中断请求。复位IF则禁止中断。IF对不可屏蔽外部中断和故障中断的识别没有任何作用。

    CF,PF,ZF,…