实模式与保护模式

本文对比了实模式和保护模式的主要特点,实模式下,16位处理器使用段地址+偏移地址寻址1MB内存,而保护模式提供32位内部寄存器和4GB最大寻址空间,通过描述符表实现更安全的内存访问,增强了系统安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实模式:

实模式简单来说就是16位模式(也有16位保护模式,但由于地址线的限制,实则都差不多),在16位模式下是使用20根地址线,可以寻址1MB内存,但又由于处理器内部的寄存器只有16位(以前的处理器),因此为了能访问整个1M内存,所以采用段地址+偏移地址的寻址方式(段地址*16+偏移地址)。

主要特点

1.内部寄存器为16位
2.最大寻址空间为1MB
3.可访问内存中的任意位置

保护模式:

保护模式是工作在32位模式下,具有32位的内部寄存器,以及32(or64)根地址线,最大访问空间为4GB内存,可以访问整个4G内存空间,但由于依然是在x86处理器的架构下,为了兼容,而依然采用段式寻址空间。

主要特点

1.内部寄存器有32位
2.最大寻址空间为4GB
3.段寄存器中保存段的选择子(不再是段基地址)

比较:

实模式和保护模式之间差别挺大的,保护模式运算能力、寻址能力都增强,但最大的差别还是保护模式的安全性能大大加强,而实模式下几乎没有安茜可讲,因为随便一个程序都可以自由访问内存中的任意空间,因此加强安全性能的方法莫过于对内存访问模式的改变:

内存访问模式:

本质上还是采用段+偏移的方法,

1.实模式

段寄存器(cs,ss,es,ds…)中存储的就是段基地址,可以没有限制的读写,也就是使用段寄存器时,就是直接用的里面存储的内容

2.描述符表

在来看保护模式之前,先来看一下描述符表:

描述符表就是描述符的集合,描述符存储的是段相关的信息,描述符统一的一个挨着一个的放在内存的一段空间中,这就构成了一个描述符表。

1.全局描述符表(GDT)是为整个软硬件系统服务的,必须在进入保护模式之前定义。

2.局部描述符表(LDT)是用户程序自己使用的,因此每个用户程序都有一个LDT,并且每个LDT在GDT中都有一个对应的描述符。

并且为了跟踪GDT,处理器内部专门有一个寄存器来负责:

1.全局描述符表寄存器(GDTR)

该寄存器称为全局描述表寄存器(GDTR),该寄存器为48位,分别是32位的基地址和16位的边界
gdtr
描述符边界也就是表的大小,最大为64KB,又由于一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值