实模式与保护模式

实模式与保护模式

8086有20根地址总线,共1MB的寻址空间,但是寄存器只有16位,所以其页式第一个支持内存分段模型的处理器。当时的8086处理器还只支持实模式,后来的32位处理器在8086的基础上支持了保护模式,可以使用32根地址线,4GB内存

实模式与保护模式都是CPU的工作模式
参考:实模式与保护模式

实模式

8086的20根地址线导致设计者决定使用分段内存,段号 + 偏移量寻址。这里的段号为16位段寄存器左移4位,即:
物理地址(physicaladdress)=段值(segment) * 16 + 偏移(offset)
这种模式下,系统计算实际地址时候是对1MB取模的方式进行,也被称为wrap-around,当给出超过1M的地址时,系统不认为其访问越界,而是从0开始重新计算

保护模式

概述

在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间。扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持,支持多任务,能够快速地进行任务切换和保护任务环境,4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离,支持虚拟8086方式,便于执行8086程序。

起源

实模式中的“段号:偏移量”带来问题:

  • 无法支持多任务
  • 程序的安全性无法得到保证:任意一个程序都可以访问系统所在内存并修改值

因此保护模式出现的核心原因是:

  • 保护进程地址空间
    • 从而导致了两种模式下程序的寻址方式变化
寻址方式和工作原理

保护模式下地址表示方式为“段(segment):偏移(offset)”

  • 段存储在段寄存器中
  • 段表示的含义是:GDT/LDT(描述符表)的一个表项
    • GDT/LDT中详细定义了段的起地址,长度,界限,属性等内容【64位】
    • 描述符指定了32位的段起地址和20位的段边界
      • 注意:保护模式下段地址是32位的线性地址,如果未开启分页,该线性地址就是物理地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值