汇编语言线性地址简述

  • 内容
  • 评论
  • 相关

在上一节《x86存储管理》中提到了线性地址,接下来为大家简单介绍一下线性地址。

逻辑地址转换为线性地址

多任务操作系统允许几个程序(任务)同时在内存中运行。每个程序都有自己唯一的数据区。假设现有 3 个程序,每个程序都有一个变量的偏移地址为 200h,那么,怎样区分这 3 个变量而不进行共享?

x86 解决这个问题的方法是,用一步或两步处理过程将每个变量的偏移量转换为唯一的内存地址。

第一步,将段值加上变量偏移量形成线性地址 (linear address)。这个线性地址可能就是该变量的物理地址。但是像 MS-Windows 和 Linux 这样的操作系统采用了分页 (paging) 功能,它使得程序能使用比可用物理空间更大的线性空间。这种情况下,就必需采用第二步页转换 (page translation),将线性地址转换为物理地址。

首先了解一下处理器如何用段和选择符来确定变量的线性地址。每个段选择符都指向一个段描述符(位于描述符表中),其中包含了该内存段的基地址。如下图所示,逻辑地址中的 32 位偏移量加上段基址就形成了 32 位的线性地址。

逻辑地址转化位线性地址

本文标题:汇编语言线性地址简述

本文地址:https://www.hosteonscn.com/5577.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注