鱼C论坛

 找回密码
 立即注册
查看: 2770|回复: 5

逻辑地址和线性地址有什么区别?

[复制链接]
发表于 2020-7-6 14:47:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问老师:逻辑地址和线性地址有什么区别?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-6 14:57:53 | 显示全部楼层

参考参考吧:

逻辑地址、线性地址、物理地址和虚拟地址理解

https://blog.csdn.net/yuzaipiaofei/article/details/51219847

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-6 15:30:16 | 显示全部楼层
逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。

线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-7 09:50:08 | 显示全部楼层

逻辑地址就是编译器给程序中的变量空间的地址

int a=3; &a就是逻辑地址

这样理解正确么?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 10:30:30 | 显示全部楼层
请问老师!逻辑地址是如何产生的,是段基址产生的,还是编译器产生的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 20:50:41 | 显示全部楼层
逻辑历来都是想象。在大脑的的虚构,计算,也就是一系列方法。每个人的方法都不同
因此,我认为,逻辑地址就是看起来的地址。也就是你大脑想象的地址。
线性地址乃程序想象的地址。就是一皮条。按顺序排号,这是理想中的。实际上可不一样。
比如,给你编号,你是1号,但实际上你做的座位可不是第一张椅子。线性地址只是一个名称,区别事物的名称。把椅子编号。每个人知道自己是几号就简单了。实际椅子在哪,你不必担忧,给你办事的人自然知道在哪里。
而逻辑,就是计算出你应该拿到几号椅子。到了后,你按号就坐就取名叫线性地址。而椅子实际在几号,由工作人员控制。比如1号椅子,它占的位置可能是48号。它们的编号是打乱了的。当然,一开始并不乱,
是因为中途有某些编号的人走了。这时候,再接着分配号码,就和实际不一样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 21:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表