Ⅰ 什么是8086中的逻辑地址和物理地址
8086中含有存储器.
存储器中每一个单元的地址可以用两种方法表示:逻辑地址物理地址
1.逻辑地址:其表达形式为“段地址:段内偏移地址”.
2.物理地址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址.
物理地址=段地址×10H+段内偏移量
CPU一次处理的数据是16位,地址总线实际上代表CPU的寻址能力,地址线为20条那么CPU实际的寻址能力就是2的20次方就是1M.
实际的物理地址是这样形成的:段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的.
例如段地址是1234H,偏移地址是4321H
那么实际的物理地址怎么算呢:1234H*10H+4321H=12340H+4321H=16661H
实际上可以这么来理解,就是段地址左移一位后加上偏移地址就得出实际的物理地址.
再比如:逻辑地址:1500H先化为2进制 0001 0101 0000 0000
左移四位就是0001 0401 0000 0000 0000,即15000H
若偏移地址为1000H 则物理地址就是16000H
Ⅱ 举例说明8086中20位物理地址生成过程
现代内存容量太大比如256M,而计算机的数据线往往只有16位、32位或者64位(目前应用很少),他们所能他寻找到的地址空间最大不过是2^16(64K)、2^32(4M)或者2^64(16T),所以内存通常使用段页式存储。也就是将内存空间分成若干段,或者若干页,每段大小是数据线所能访问到的最大空间。在内存中的实际地址就是所谓的“物理地址”,而逻辑地址就是逻辑段管理内存而形成的。
比如在8086系统中,8086对外连接使用一个20位的线性地址唯一确定一个存储单元,也就是说:对于每个存储器单元都有的一个唯一的20位地址,我们称为该单元的物理地址或绝对地址。
8086在内部结构中和程序设计时采用逻辑段管理内存,就形成了逻辑地址。它的表达形式为“段基地址 : 偏移地址”。
逻辑地址=段基地址 : 偏移地址
段基地址(Segment)——逻辑段在主存中的起始位置,简称段地址。由于8086规定段开始于模16地址,所以省略低4位0不显式表达,段基地址就可以用16位数据表示。
偏移地址(Offset)——主存单元距离段起始位置的偏移量(Displacement)。由于限定每段不超过64KB,所以偏移地址也可以用16位数据表示。
这样同一个存储单元就即有物理地址,又有逻辑地址。但是请注意,物理地址是外部连接使用的、唯一的;而逻辑地址是内部和编程使用的、并不唯一。
物理地址和逻辑地址可以互相转换。
将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址。这里左移的4位是二进制位;如果用十六进制表达地址就是左移一位(不知道为什么,复习数制内容吧!还不知道为什么,看疑难解答吧!)。左移4位还可以表达为乘以16,即:段地址×16+偏移地址。
同一个物理地址可以对应多个逻辑地址形式。所以物理地址转换为逻辑地址,需要明确段基地址或偏移地址,然后同上原则确定另一个地址。
逻辑地址 1460H : 0100H 1380H : 0F00H
物理地址 14700H
于是,对于主存14700H单元,我们可以描述为在1460H(或1380H)段的100H(或F00H)单元,或者说主存1460H : 0100H(或1380H : 0F00H)单元。
Ⅲ 8086系统中访问存储器的20 位物理地址是如何形成的
首先 段寄存器 右移4位 成 20位地址 然后加上16位偏移地址 形成最后的 20位地址。如有不清楚可以去网上看看《微机原理与接口技术》第二版 (周明德) 第39页
Ⅳ 什么是逻辑地址什么是物理地址
逻辑地址: 是指由程序产生的与段相关的偏移地址部分。又称绝对地址。
物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。
一、关系:逻辑地址和物理地址相对的。物理地址是唯一的,逻辑地址的相对的。
二、表达方式:
1、逻辑地址:其表达形式为“段地址:段内偏移地址”。
2、物理地址:CPU与存储器进行数据交换时在地址总线上 。
(4)存储器的物理地址是怎么形成的扩展阅读:
一、逻辑地址的产生背景
追根求源,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+偏移地址。
Ⅳ 2.6 什么是逻辑地址什么是物理地址如何由逻辑地址计算物理地址
【解】:物理地址:完成存储器单元或I/O端口寻址的实际地址成为物理地址,CPU型号不同其物理地址也不同。物理地址是指CPU和存储器进行数据交换时实际所使用的地址,而逻辑地址是程序使用的地址。物理地址由两部分组成:段基址(段起始地址高16位)和偏移地址。前者由段寄存器给出,后者是指存储单元所在的位置离段起始地址的偏移距离。当CPU寻址某个存储单元时,先将段寄存器的内容左移4位,然后加上指令中提供的16位偏移地址而形成20位物理地址。在取指令时,CPU自动选择代码段寄存器CS,左移4位后,加上指令提供的16位偏移地址,计算出要取指令的物理地址。堆栈操作时,CPU自动选择堆栈段寄存器SS,将其内容左移4位后,加上指令提供的16位偏移地址,计算出栈顶单元的物理地址。每当存取操作数时,CPU会自动选择数据段寄存器(或附加段寄存器ES),将段基值左移4位后加上16位偏移地址,得到操作数在内存的物理地址。
Ⅵ 8086储存器系统中物理地址是怎么样构成的
8086的物理地址是20位的 ,而8086本身只凳告有16位,所以它的物理地址是由一个段基址和一个偏移地址构成的,例如:DS段的脊桥地址是4B3Ah,它对应的偏移地址SI是1000h,则对应的物枣野明理地址就是 :16*4B3Ah + 1000h = 4C3A0h
Ⅶ 存储器的逻辑地址由哪几部分组成存储器的物理地址是怎样形成的
逻辑地址是指程序员编制的程序地址,由它构成逻辑地址空间。程序主存储器中的实际地址称为物理地址.
所以这里逻辑地址的组成得看你的存储器是段表的还是页表的,物理地址一般通过一个关系来对应逻辑地址.
当然楼上的回答也有正确的地方那就是在一般的寻址中,指令的地址可以是这样计算的,但是他的回答太不全面了.
Ⅷ 物理地址(CPU中相关术语)详细资料大全
在存储器里以位元组为单位存储信息,为正确地存放或取得信息,每一个位元组单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。
Ⅸ 8086储存器系统中物理地址是怎么样构成的
8086的物理地址是20位的 ,而8086本身只有16位,所以它的物理地址是由一个段基址和一个偏移地址构成的,例如:DS段的地址是4B3Ah,它对应的偏移地址SI是1000h,则对应的物理地址就是 :16*4B3Ah + 1000h = 4C3A0h