逻辑地址和物理地址的区别是什么?应用程序员的应用

首先我们知道逻辑地址=段地址:偏移地址

然后进行运算:段地址×16+偏移地址=物理地址(可以理解为段地址末尾的0)

示例:逻辑地址为 1000H:1000H

那么物理地址就是1000H×16+1000H=11000H

扩展你的知识:

逻辑地址和物理地址的区别是:

逻辑地址(LogicalAddress)是指程序生成的段相关的偏移地址部分。例如逻辑地址转换为物理地址,在 C 语言指针编程中,可以读取指针变量本身的值(& 操作)。其实这个值就是逻辑地址,是相对于你当前进程数据段的地址的,与绝对物理地址无关。仅在Intel实模式下,逻辑地址等于物理地址(因为实模式下没有分段或分页机制,Cpu不进行自动地址转换);逻辑是英特尔保护模式下程序执行代码段限制内的偏移量。移位地址(假设代码段和数据段完全相同)。应用程序员只需要处理逻辑地址,而分段和分页机制对您来说是完全透明的,并且只由系统程序员负责。虽然应用程序程序员可以直接操作内存,但他们只能在操作系统分配给你的内存段中操作。

物理地址(PhysicalAddress)是指在CPU的外部地址总线上寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用分页,则使用页目录和页表中的条目将线性地址转换为物理地址。如果不启用分页机制逻辑地址转换为物理地址,那么线性地址直接变成物理地址。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论