汇编语言存储单元(寄存器)

本文详细解析了X86架构中的关键存储单元如硬盘、内存、CPU寄存器(包括通用寄存器、段寄存器、指令指针和标志寄存器),以及与之相关的概念,如段机制、保护模式和VisualStudio中的段选择器。
摘要由CSDN通过智能技术生成

数据-存储单元

  • 计算机存储单元

    硬盘

    内存

    CPU(寄存器)

寄存器


  • 寄存器是位于CPU内部 (每个CPU核心都有对应一套寄存器)

  • 通用寄存器 - EAX EBX ECX EDX ESP EBP ESI EDI

    • ESP (栈顶指针) EBP (栈底指针) 用于维护线程栈区
  • 段寄存器 - CS SS DS ES FS GS

  • 指令指针寄存器 - EIP

  • 标志寄存器 - EFLAGS

通用寄存器


  • 通用寄存器(32)

    寄存器用途(通常)编号范围
    EAX累加器 乘除指令使用EAX00x00000000 ~ 0xFFFFFFF
    ECX循环计算器10x00000000 ~ 0xFFFFFFF
    EDXI/O指针20x00000000 ~ 0xFFFFFFF
    EBXDS段的数据指针30x00000000 ~ 0xFFFFFFF
    ESP堆栈指针指向线程栈顶40x00000000 ~ 0xFFFFFFF
    EBP堆栈知道执行线程栈底50x00000000 ~ 0xFFFFFFF
    ESI字符串操作源指针60x00000000 ~ 0xFFFFFFF
    EDI字符串操作目标指针70x00000000 ~ 0xFFFFFFF

    在这里插入图片描述

    32Bit16Bit8Bit8Bit
    EAXAXAHAL
    ECXCXCHCL
    EDXDXDHDL
    EBXBXBHBL
    ESPSP
    EBPBP
    ESISI
    EDIDI

段寄存器


  • CPU - 保护模式

    • 段的机制
    • 页的机制
  • 段寄存器 - CS SS DS ES FS GS

    • CS - Code Segment
    • SS - Stack Segment
    • DS - Data Segment
    • ES - Extend Segment
    • FS - R3 - _TEB R0 - _KPCR
  • 位宽

    X86dbg

    在这里插入图片描述

    Visual Studio

    在这里插入图片描述

  • Segment selector

    • (0 ~ 1)RPL / CPL

    • (2)TI

    • (3 ~ 15)INDEX

    • Segment Descriptor

      • P
      • DPL
      • S
      • TYPE
      • LIMIT
      • BASE

指令指针寄存器


  • 指令指针寄存器 - EIP
  • EIP寄存器当中存储的是下一条即将要执行的指令地址

标志寄存器


  • 标志寄存器

    • EFLAG寄存器占4字节32位

    • 由一堆标志位共同组成EFLAG寄存器且每个标志位占据一个二进位

      在这里插入图片描述

  • 标志位

    FlagsVirual StudioIndex含义
    CF(Carry flag)CY(进位标志)0算数运算结果在最高有效位(MSB)发生进位或者借位是将其置1反之为0 该标志位也表示无符号整数运算发生溢出
    PF(Parity)PE(奇偶标志)2运算结果的最低有效字节中1的个数为偶数则置1反之为0
    AF(Auxiliary Carry flag)AC(辅助进位)4运算结果(03BIT)低四位向高四位发生进位或者借位时将其置1反之为0
    ZF(Zero flag)ZR(零标志位)5运算结果为0则将其置1反之为0
    SF(Sign flag)PL(符号标志)7运算结果的最高有效位
    DF(Direction flag)UP(方向标志)10方向标志位控制了串操作指令 设置标志位将使得串操作指令地址自动递减(从高地址向低地址处理串) 清除标志位将使得串操作指令地址自动递增(从低地址向高地址处理串)
    OF(Overflow flag)OV(溢出标志)11该标志位表示有符号整数运算发生溢出
    IOPL(I/0 Privilege Level)12&13当前运行任务的I/O特权级
    NT(Nested Task)14控制寄存器对调试溢出的响应
    RF(Resume flag)16控制寄存器对调试溢出的响应
    VM(Virtual 8086 Mode)17此标志位为1表示为虚拟8086模拟反之为保护模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值