作用
在8086的
实模式下,把某一
段寄存器左移4位,然后与地址ADDR相加后被直接送到内存总线上,这个相加后的地址就是
内存单元的物理地址,而程序中的这个地址就叫
逻辑地址(或叫虚地址)。在80386的保护模式下,这个逻辑地址不是被直接送到内存总线,而是被送到
内存管理单元(MMU)。MMU由一个或一组芯片组成,其功能是把逻辑地址映射为物理地址,即进行地址转换。
地址区分
当使用80386时,我们必须区分以下三种不同的地址:
逻辑地址:
机器语言指令仍用这种地址指定一个
操作数的地址或一条指令的地址。这种
寻址方式在Intel的分段结构中表现得尤为具体,它使得MS-DOS或Windows程序员把程序分为若干段。每个逻辑地址都由一个段和
偏移量组成。
线性地址:针对32位CPU,线性地址是一个32位的
无符号整数,可以表达高达2
32(4GB)的地址。通常用16进制表示线性地址,其取值范围为0x00000000~0xffffffff。对64位CPU,线性地址是一个64位的无符号整数,可以表达高达264。
内存地址类型
内存地址有许多类型。换句话说,一个
电脑,甚至在一个程序内,可能即存在数个不同的内存“
定址空间”。
MMU理解
MMU是一种硬件电路,它包含两个部件,一个是分段部件,一个是分页部件,在本书中,我们把它们分别叫做分段机制和分页机制,以利于从逻辑的角度来理解硬件的实现机制。分段机制把一个逻辑地址转换为
线性地址;接着,分页机制把一个线性地址转换为
物理地址。
另见
-
-
-
内存管理单元(MMU)
-
标签页表
-
内存保护
-
内存区块
-
低级语言