X86汇编语言:从实模式到保护模式(代码+注释)--c10、11(保护模式:32位x86处理器编程架构+进入保护模式)

本文详细介绍了32位x86处理器的保护模式编程架构,包括寄存器扩展、流水线工作原理、进入保护模式的步骤,特别是全局描述符表(GDT)和全局描述符寄存器(GDTR)的作用。还讨论了控制保护模式切换和内存访问的机制。

保护模式:32位x86处理器编程架构

IA-32架构的基本执行环境

  1. 寄存器扩展
    通用寄存器(32):EAX EBX ECX EDX ESI EDI EBP ESP
    指令寄存器(32):EIP
    标志寄存器(32):EFLAGS
    段寄存器–>段选择子(16):CS DS ES SS FS GS(每个段寄存器都有一个64位的描述符高速缓存器)
  2. 线性地址
    在未开启页功能之前,线性地址就是物理地址。当开启页功能后,段部件产生的地址就是线性地址(非物理地址),线性地址还要经过页部件转换后,才是物理地址。

现代处理器的结构和特点

  1. 流水线
    一条指令的执行过程分为取指令、译码和执行三个步骤。
    三层级流水线
    Pentium 4采用NetBrust微结构,使用了31级超深流水线。
  2. 高速缓存
  3. 乱序执行:将指令最小化后,必要时可以乱序执行
  4. 寄存器重命名:使用临时寄存器替代原有指令中的寄存器,提高执行效率。
  5. 分支目标预测:分支目标缓存器BTB,提高分支过程的效率

进入保护模式

全局描述符表

段描述符(8字节)

  • 全局描述符表(GDT):该表是为整个软硬件系统服务的,进- - 入保护模式前必须定义全局描述符表。
  • 全局描述符寄存器(GDTR,48位):包括32位的线性地址和16位的边界地址(数值上等于表的大小,总字节数减一)。
  • 在这里插入图片描述
    GDT最大64KB,从0x00007e00到0x00017dff。
    在这里插入图片描述
    每个段描述符的大小为8字节,段基地址占32位,段界限占20位。
    G(粒度,1bit): 为0段界限以字节为单位,因此此时段能访问的地址空间小为1MB。为1段界限以4KB为单位,此时能访问的地址空间大小为4GB。
    **D/B(“默认的操作数大小”或者“默认的栈指针小”又或者是“上部边界”,1bit)😗*设置该标志位主要是为了再32位处理器上运行16位保护模式的程序。(很少使用,书中将其设置为1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想考北航的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值