第二章微处理器存储器管理技术(6学时) ②知识概述② 第一节实模式存储器寻址(2学时) 第二节保护模式存储器寻址(4学时) 退出
第二章 微处理器存储器管理技术(6学时) 第二节 保护模式存储器寻址 (4学时) 退 出 第一节 实模式存储器寻址(2学时) ☺ 知 识 概 述 ☺
第一节实模式存储器寻址 80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式 实模式只允许微处理器寻址第一个1MB内存空间,即 使是 PentiumIv微处理器也是如此。 DOS操作系统要求微处理器工作于实模式 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。 退出
第一节 实模式存储器寻址 80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式。 实模式只允许微处理器寻址第一个1MB内存空间,即 使是PentiumⅣ微处理器也是如此。 DOS操作系统要求微处理器工作于实模式。 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行。 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。 退 出
21.1段地址和偏移地址 图2.1说明了段加偏移的寻址机制如何选择内存单元。 1.逻辑地址:用冒号连接段地址和偏移地址,即段地址: 偏移地址 2.物理地址:物理地址≡段的起始地址+偏移地址≡段地址 ×10H+偏移地址 退出
2.1.1 段地址和偏移地址 图2.1说明了段加偏移的寻址机制如何选择内存单元。 1. 逻辑地址:用冒号连接段地址和偏移地址,即段地址: 偏移地址。 2. 物理地址:物理地址=段的起始地址+偏移地址=段地址 10H+偏移地址。 退 出
21.2默认段和偏移寄存器 微处理器有一套规则,用于每次访问内存段,这套规 则既适合于实模式也适合于保护模式,规则如下: 1.用CS:IP或CS:EIP定位微处理器执行的下一条指令 2.用SS:SP或SS:ESP寻址存储器堆栈段中的数据 3.用DS或ES寻址存储器的数据段中的数据。 808680286允许访问4个存储段,8386 PentiumIv允 许访问6个存储段。注意内存段可以相邻甚至重叠,如果 段不需要64KB内存,则它可与其它段重叠 例如某个应用程序的代码需要1000H个字节的内存 数据需要190H个字节的内存,堆栈需要200H个字节的内存 这个应用程序不需要附加段。图2.3表示了DS是如何装入 应用程序的。 退出
2.1.2 默认段和偏移寄存器 微处理器有一套规则,用于每次访问内存段,这套规 则既适合于实模式也适合于保护模式,规则如下: 1. 用CS:IP或CS:EIP定位微处理器执行的下一条指令。 2. 用SS:SP或SS:ESP寻址存储器堆栈段中的数据。 3. 用DS或ES寻址存储器的数据段中的数据。 8086~80286允许访问4个存储段,80386~PentiumⅣ允 许访问6个存储段。注意内存段可以相邻甚至重叠,如果 一段不需要64KB内存,则它可与其它段重叠。 例如某个应用程序的代码需要1000H个字节的内存, 数据需要190H个字节的内存,堆栈需要200H个字节的内存, 这个应用程序不需要附加段。图2.3表示了DOS是如何装入 应用程序的。 退 出
21.3程序重定位问题的实现 1.可重定位程序:是一个可以放在内存任何区域,不加修 改而仍能执行的程序 2.可重定位的数据:是可以放在内存任何区域,且不需要 修改就可以被程序应用的数据 段加偏移寻址机制允许程序和数据不需要任何修改, 而使程序和数据重定位。 退出
2.1.3 程序重定位问题的实现 1. 可重定位程序:是一个可以放在内存任何区域,不加修 改而仍能执行的程序。 2. 可重定位的数据:是可以放在内存任何区域,且不需要 修改就可以被程序应用的数据。 段加偏移寻址机制允许程序和数据不需要任何修改, 而使程序和数据重定位。 退 出
第二节保护模式存储器寻址 在保护模式下,当寻址内存中的数据和程序时,仍然 使用偏移地址访问位于存储段内的信息。区别是,保护模 式下的段地址不再像实模式那样由段寄存器提供。在原来 存放段地址的段寄存器里含有一个选择子,用于选择描述 表内的一个描述符。描述符描述存储器段的位置、长度和 访问权限。两种模式之间的区别是微处理器访问存储段时 对段寄存器的解释不同 退出
第二节 保护模式存储器寻址 在保护模式下,当寻址内存中的数据和程序时,仍然 使用偏移地址访问位于存储段内的信息。区别是,保护模 式下的段地址不再像实模式那样由段寄存器提供。在原来 存放段地址的段寄存器里含有一个选择子,用于选择描述 表内的一个描述符。描述符描述存储器段的位置、长度和 访问权限。两种模式之间的区别是微处理器访问存储段时 对段寄存器的解释不同。 退 出
2.21分段存储器管理 选择子 在保护模式下,段寄存器的功能如图24所示,段寄 存器包括13位的选择子字段、表指示器位( table indicator,T1)和请求优先级( requested privilege level, RPL)字段。其中13位的选择子可从描述待表的 213=8192个描述符中选择一个。T位选择全局描述附表 (T|=0)或局部描述附表(T|=1)。 1.对于286由于偏移地址是16位长,所以一个段的最 大容量为64KB。因此逻辑空间,也即虚拟空间为 214×216=230=1GB。 2.而对于80386~ PentiumⅣ,它的偏移地址为32位长, 所以一个段的最大容量为4GB。因此虚拟地址空间为 214×232=246=64TB。 退出
2.2.1分段存储器管理 一、选择子 在保护模式下,段寄存器的功能如图2.4所示,段寄 存器包括13位的选择子字段、表指示器位(table indicator,TI)和请求优先级(requested privilege level, RPL)字段。其中13位的选择子可从描述符表的 213=8192个描述符中选择一个。TI位选择全局描述附表 (TI=0)或局部描述附表(TI=1)。 1. 对于286由于偏移地址是16位长,所以一个段的最 大容量为64KB。因此逻辑空间,也即虚拟空间为 214216=230=1GB。 2. 而对于80386~PentiumⅣ,它的偏移地址为32位长, 所以一个段的最大容量为4GB。因此虚拟地址空间为 214232=246=64TB。 退 出
二、描述符 图2,5表示80286、80386 PentiumⅣ的描述符格式。 注意每个描述符长8个字节,所以全局和局部描述符表每 个最长为64KB 例2-1如果段的基地址为1000000,界限为001FFH, G位为0时,求段的结束地址;若G位为1时,求段的结束地 址。 base=10000000H G=0 End=BasetLimit=10000000H+001FFH=100001FFH G=1 End= basetlimit=10000000H+001FFFFF=101FFFFFH 退出
2.2.1 二、描述符 图2.5表示80286、80386~PentiumⅣ的描述符格式。 注意每个描述符长8个字节,所以全局和局部描述符表每 个最长为64KB。 例2-1 如果段的基地址为10000000H,界限为001FFH, G位为0时,求段的结束地址;若G位为1时,求段的结束地 址。 base=10000000H G=0 End=Base+Limit=10000000H+001FFH=100001FFH G=1 End= Base+Limit=10000000H+001FFFFF=101FFFFFH 退 出
1.访问权限字节功能如图2.6所示。 2.保护模式下的寻址:图2.7表示含选择子的段寄存器如何 从全局描述符表中选择一个描述符,从描述符中如何选择 存储器的一个段。 退出
2.2.1 1. 访问权限字节功能如图2.6所示。 2. 保护模式下的寻址:图2.7表示含选择子的段寄存器如何 从全局描述符表中选择一个描述符,从描述符中如何选择 存储器的一个段。 退 出
2.2.2分页存储器管理 分页管理将克服分段管理的缺点,把虚拟存储空间和 内存物理空间都划分长度为4KB的页,页的起点和终点地 址都是固定的。 分页寄存器 分页机制的启用是由微处理器中控制寄存器的内容 控制。控制寄存器CR0到CR3的内容见图2.8。 退出
2.2.2 分页存储器管理 分页管理将克服分段管理的缺点,把虚拟存储空间和 内存物理空间都划分长度为4KB的页,页的起点和终点地 址都是固定的。 一、分页寄存器 分页机制的启用是由微处理器中控制寄存器的内容 控制。控制寄存器CR0到CR3的内容见图2.8。 退 出