首页 > 汇编语言 > 汇编语言MS-Windows编程
阅读:124
汇编语言x86存储管理简述
本节将对 Windows 32 位存储管理进行简要说明,展示它是如何使用 x86 处理器直接内置功能的。重点关注的是存储管理的两个主要方面:
下面先简单回顾一下第2章《x86处理器架构》介绍过的一些 x86 存储管理术语:
现在再增加两个新术语:
本教程一直都忽略了段寄存器,因为用户程序从来不会直接修改这些寄存器,所以只关注了 32 位数据偏移量。但是,从系统程序员的角度来看,段寄存器是很重要的,因为它们包含了对内存段的直接引用。
- 将逻辑地址转换为线性地址
- 将线性地址转换为物理地址 ( 分页 )
下面先简单回顾一下第2章《x86处理器架构》介绍过的一些 x86 存储管理术语:
- 多任务处理 (multitasking) 允许多个程序(或任务)同时运行。处理器在所有运行程序中划分其时间。
- 段 (segments) 是可变大小的内存区,用于让程序存放代码或数据。
- 分段 (segmentation) 提供了分隔内存段的方法。它允许多个程序同时运行又不会相互干扰。
- 段描述符 (segment descriptor) 是一个 64 位的值,用于标识和描述一个内存段。它包含的信息有段基址、访问权限、段限长、类型和用法。
现在再增加两个新术语:
- 段选择符 (segment selector) 是保存在段寄存器 (CS、DS、SS、ES、FS 或 GS) 中的一个 16 位数值。
- 逻辑地址 (logical address) 就是段选择符加上一个 32 位的偏移量。
本教程一直都忽略了段寄存器,因为用户程序从来不会直接修改这些寄存器,所以只关注了 32 位数据偏移量。但是,从系统程序员的角度来看,段寄存器是很重要的,因为它们包含了对内存段的直接引用。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频