物理地址即是真实存在的唯一地址,是指的内存中各个单元的单元号,由8086有20条地址线,因此可寻址2的20次方,按2进制位表示规则,即有20位,这个就是物理地址。物理地址因为超过了寄存器大小(16位)因此无法直接存放,需要合成,公式为物理地址=段地址×10H+偏移地址,公式中的数据可从逻辑地址获得。
逻辑地址是16位的,因此范围是2的16次方,即64K。
物理地址是20位的,因此范围是2的20次方,即1M。
问题二:什么是逻辑地址? 逻辑地址 在工具书中的解释
1、在有地址变换功能的计算机中,访问指令给出的地址 ( *** 作数) 叫逻辑地址,也叫相对地址。要经过寻址和消脊方式的计算或变换才得到内存储器中的物理地址。
2、把用户程序中使用的地址称为相对地址即逻辑地址。
3、逻辑地址由两个16位的地址分量构成,一个为段基值,另一个为偏移量。两个分量均为无符号数编码。
逻辑地址 在学术文献中的解释
1、这样该存储单元的地址就可以用段基址(段地址)和段内偏移量(偏移地址)来表示,段基址确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址,通常表示为段地址:偏移桥如地址的形式。
2、所谓逻辑地址是指按数据的逻辑块号给出的磁盘的位置(l块=512字l字=64位)而物理地址则是由磁盘的柱面、头、段等物理位置所确定的地址。
问题三:为什么要有逻辑地址,有了逻辑地址实现了什么,改善了什么? 30分 逻辑地址是为了程序结构化而做的设计,分层设计,直接访问硬件地址的模块,对下是使用物理地址,对上封装成逻辑地址,是为了程序移植方便。
问题四:什么是逻辑地址和物理地址 逻辑地址是段地址和偏移地址,将段地址二进制左移四位加上偏移地址,就是这个逻辑地址实际的物理地址,通过这个物理地址就能实际访问到它。
逻辑地址是为了方便内存段式管理而出现的概念。
问题五:逻辑地址和物理地址的区别? 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(& *** 作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因唤渗为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接 *** 作内存,那也只能在 *** 作系统给你分配的内存段 *** 作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory) 是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个攻务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的 *** 作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由 *** 作系统指定的。
问题六:逻辑地址 5分 如果逻辑地址:1500H
化为2进制 0001 0101 0000 0000左移四位就是0001 0401 0000 0000 0000,即15000H
若偏移地址为1000H
则物理地址就是16000H 还有个简单的方法就是错位相加,1500
+ 1000
160000
问题七:什么是逻辑地址和物理地址? 可以简单理解为:MAC 物理地址,全球唯一的;
IP:逻辑地址,这个是可变的。
逻辑地址: 是指由程序产生的与段相关的偏移地址部分。又称绝对地址。
物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。
一、关系:逻辑地址和物理地址相对的。物理地址是唯一的,逻辑地址的相对的。
二、表达方式:
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条。则2^20=1MB的寻址能力已经增加了16倍。但此举却造成了AB的20位和DB的16位之间的矛盾,20位地址信息既无法在DB上传送,又无法在16位的CPU寄存器和内存单元中存放。于是应运而生就产生了CPU段结构的原理。
二、物理地址的计算方法
在实地址方式下,物理地址是通过段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上并让段内偏移地址即可得到物理地址。
20位物理地址计算方法如下:
物理地址=段地址*16d+偏移地址。
参考资料:百度百科-逻辑地址
参考资料:百度百科-物理地址
逻辑地址(LogicalAddress)是指由程序产生的与段相关的偏移地址部分。有时我们也把逻辑地址称为虚拟地址
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制搭拿,那么线性地址就直接成为物理地址了。
二者的关系如下:
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地键举址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及知亮搭。应用程序员虽然自己可以直接 *** 作内存,那也只能在 *** 作系统给你分配的内存段 *** 作。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由 *** 作系统指定的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)