逻辑地址物理地址?1. 逻辑地址的定义:逻辑地址是由程序产生的,与段相关的偏移地址部分,也称为绝对地址。2. 物理地址的定义:物理地址是在存储器中以字节为单位存储信息时,每个字节单元对应的一个唯一存储器地址,也称为实际地址或绝对地址。3. 逻辑地址与物理地址的关系:逻辑地址和物理地址是相对的,那么,逻辑地址物理地址?一起来了解一下吧。
逻辑地址是指在计算机程序中由程序产生的与段相关的偏移地址部分,也称为绝对地址。它通常以“段地址:段内偏移地址”的形式表达。
物理地址是指在存储器中以字节为单位存储信息时,为了正确存放或取得信息,每个字节单元都被赋予一个唯一的存储器地址,这个地址被称为物理地址,也称作实际地址或绝对地址。
逻辑地址与物理地址是相对的概念。物理地址是唯一的,而逻辑地址是相对的。当CPU与存储器进行数据交换时,物理地址会在地址总线上出现。
在实地址模式下,物理地址的计算方法是通过段地址乘以16(相当于左移4位二进制位)加上偏移地址得到。这样,20位的段地址加上段内偏移地址就构成了20位的物理地址。物理地址的计算公式为:物理地址 = 段地址 * 16 + 偏移地址。
什么是逻辑地址?
逻辑地址是指由程序产生的与段相关的偏移地址部分。例如,在进行C语言指针编程时,可以读取指针变量本身的值(&操作),实际上这个值就是逻辑地址,它是相对于当前进程数据段的地址,与绝对物理地址无关。只有在Intel实模式下,逻辑地址才与物理地址相等(因为实模式没有分段或分页机制,CPU不进行自动地址转换)。在Intel保护模式下,逻辑地址是程序执行代码段限长内的偏移地址(假设代码段、数据段完全一样)。应用程序员只需与逻辑地址打交道,而分段和分页机制对应用程序员来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然可以直接操作内存,但那也只能在操作系统分配的存储段内进行操作。
什么是物理地址?
物理地址是指内存中实际存储数据的位置。在计算机系统中,每个内存单元都有一个唯一的物理地址。当程序需要访问内存中的数据时,它会通过逻辑地址来请求数据,然后操作系统会将逻辑地址转换为相应的物理地址,以便程序能够正确地访问内存中的数据。物理地址与逻辑地址之间的转换通常由CPU的内存管理单元(MMU)完成。
逻辑地址: 是指由程序产生的与段相关的偏移地址部分。又称绝对地址。
物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。
一、关系:逻辑地址和物理地址相对的。物理地址是唯一的,逻辑地址的相对的。
二、表达方式:
1、逻辑地址:其表达形式为“段地址:段内偏移地址”。
2、物理地址:CPU与存储器进行数据交换时在地址总线上 。
扩展资料:
一、逻辑地址的产生背景
追根求源,Intel的8位机8080CPU,数据总线(DB)为8位,地址总线(AB)为16位。那么这个16位地址信息也是要通过8位数据总线来传送,也是要在数据通道中的暂存器,以及在CPU中的寄存器和内存中存放的,但由于AB正好是DB的整数倍,故不会产生矛盾!
但当上升到16位机后,Intel8086/8088CPU的设计由于当年IC集成技术和外封装及引脚技术的限制,不能超过40个引脚。但又感觉到8位机原来的地址寻址能力2^16=64KB太少了,但直接增加到16的整数倍即令AB=32位又是达不到的。
故而只能把AB暂时增加4条成为20条。
逻辑地址(LogicalAddress)是指由程序产生的与段相关的偏移地址部分。有时我们也把逻辑地址称为虚拟地址
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
二者的关系如下:
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
首先我们知道,逻辑地址=段地址:偏移地址
然后进行运算:段地址×16+偏移地址=物理地址(可以理解为段地址末尾补一个零)
举例:逻辑地址是1000H:1000H
那么物理地址为1000H×16+1000H=11000H
拓展知识:
逻辑地址和物理地址的区别是:
逻辑地址(LogicalAddress)是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
物理地址(PhysicalAddress)是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。
以上就是逻辑地址物理地址的全部内容,逻辑地址(LogicalAddress)是指由程序产生的与段相关的偏移地址部分。有时我们也把逻辑地址称为虚拟地址 物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。