1.概述
在学习《Intel 汇编语言程序设计(第四版)》保护模式内存管理部分的时候,感觉该部分涉及的内容比较多,而且杂,很难一次全部理解清楚,因此针对理解部分做个总结,并列出暂时不理解的部分。
2.CPU的工作模式
IA-32家族的CPU支持三种工作模式和一种准工作模式:
- 保护模式
- 实模式
- 系统管理模式
- 虚拟8086模式
3.CPU支持的内存模型
IA-32主要支持三种内存模型
l 平面内存模型
每个程序都独享连续的4GB线性地址空间。所有的代码数据都包含在该空间内。
实际上程序在运行的时候依然存在两个段:代码段和数据段。
l 段内存模型
将线性地址分割成独立的小内存空间,用来保存对应代码,数据或者堆栈。
这些小的内存空间叫做段。每个程序由不同的段集合组成。所有的段映射到线性地址空间中。程序通过逻辑地址访问相应的数据,CPU将逻辑地址转换成对应的物理地址。
逻辑地址由段选择子和一个32位的偏移量组成。
此时的段保存的是段选择子。
l 实模式内存模型
采用段+偏移量的模式进行寻址,同DOS下汇编。此时的段保存的是段的地址。