逻辑地址如何转换成物理地址的?

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:19:13

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

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

举例:逻辑地址是1000H:1000H

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

拓展知识:

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

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

物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。

物理地址=段地址*10H+段内偏移地址。

段地址乘以10H是因为段地址当时是取高四位得到的,所以还原后要让段地址左移4位(10H = 10000B),例如(cs)= 20A8H,(IP)=  2008H,则物理地址为20A8H*10H+2008H = 22A88H。

例如(cs)= 20A8H,(IP)=  2008H,则物理地址为20A8H*10H+2008H = 22A88H。

逻辑地址如何转换成物理地址的? 80386微处理器逻辑地址到物理地址的转换过程 什么是物理地址和逻辑地址?是如何产生的? 在分页系统中页面大小由谁决定?页表的作用是什么?如何将逻辑地址转换成物理地址? 逻辑地址,网络地址,物理地址的区别 什么是物理地址 逻辑地址 什么是逻辑地址?什么是物理地址? 逻辑地址F27D:E029的物理地址是多少 溢出了? 有关操作系统中逻辑地址到物理地址的一个问题 IP地址如何转化成物理地址