物理地址怎么计算?物理地址=段地址*16+偏移地址 你学这个公式的章节应该是配合8086处理器来讲的,8086有20条地址线,也就是说它的任意一个内存地址(物理地址)是20位,但是8086内部的寄存器只有16位,为了达到表示20位的效果,就用一个寄存器存地址的高位部分(段地址),一个寄存器存地址的低位部分(偏移地址)。最后用高位的段地址左移4位(段地址乘以2的4次方)同低位的偏移地址相加,那么,物理地址怎么计算?一起来了解一下吧。
段地址、偏移地址与物理地址的关系简写为:PA = 段地址 × 16 + EA(或物理地址 = 段基址 × 10H + 偏移地址)。以下是具体解释:
1. 核心公式解析物理地址(PA)的计算基于段地址(段基址)与偏移地址(EA)的线性组合。公式中,段地址需左移4位(即乘以16或10H),再与偏移地址相加。例如:
若段地址为0x1000,偏移地址为0x0020,则物理地址为:0x1000 × 16 + 0x0020 = 0x10020(十六进制)或 4096 × 16 + 32 = 65568(十进制)。
等价表示中,10H是十六进制数,对应十进制的16,因此公式物理地址 = 段基址 × 10H + 偏移地址与前者完全等价。
2. 设计背景与意义该计算方式源于早期x86架构的分段内存管理机制。通过将内存划分为多个逻辑段(段地址),每个段内使用偏移地址定位具体数据,实现了:
地址空间扩展:16位段地址与16位偏移地址组合后,可访问1MB(2^20)的物理内存(实际受限于20位地址总线)。

物理地址=段地址*10H+段内偏移地址。
段地址乘以10H是因为段地址当时是取高四位得到的,所以还原后要让段地址左移4位(10H = 10000B),例如(cs)= 20A8H,(IP)= 2008H,则物理地址为20A8H*10H+2008H = 22A88H。
例如(cs)= 20A8H,(IP)= 2008H,则物理地址为20A8H*10H+2008H = 22A88H。
拓展资料
逻辑地址是指由程序产生的与段相关的偏移地址部分。
在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址,又叫实际地址或绝对地址。
段地址是针对内存的分段而言的,将每一段的段首地址定义为段地址.段地址的存在是由系统的分段存储决定的,通过段地址和偏移地址就能对数据进行寻访。
偏移地址(SA)是指段内相对于段起始地址的偏移值,例如一个存储器的大小是1KB,可以把它分为4段,第一段的地址范围就是0—255,第二段的地址范围就是256-511,以此类推。这些段内的偏移地址就是在0-255的范围内的。
而计算它们的物理地址只需要把段地址左移4位,再加上偏移地址就可以了。
在8086架构中,物理地址的计算公式为:物理地址 = 段基址 × 16(左移4位) + 偏移地址。具体计算逻辑及注意事项如下:
1. 段基址与偏移地址的组合方式8086采用20位地址总线,但段寄存器(如CS、DS)和偏移地址均为16位。为生成20位物理地址,需通过以下步骤:
段基址处理:将段寄存器的16位值左移4位(等价于乘以16),形成20位地址的高16位(低4位补0)。例如,段值0x1234左移4位后变为0x12340。
偏移地址处理:直接使用16位偏移地址(如0x5678)作为20位地址的低16位。
相加生成物理地址:将左移后的段基址与偏移地址相加,得到最终20位物理地址。例如,0x12340 + 0x5678 = 0x179B8。
关键点:此过程并非简单的数值拼接,而是通过地址总线扩展实现20位寻址。段基址左移后,其低4位固定为0,偏移地址填充低16位,确保覆盖1MB内存空间(0x00000~0xFFFFF)。

存储器物理地址的计算方法如下:
确定段地址和偏移地址:
段地址:2000H
偏移地址:2200H
计算物理地址:
根据公式:物理地址 = 16d * 段地址 + 偏移地址
将段地址和偏移地址代入公式:物理地址 = 16d * 2000H + 2200H
注意,这里的“H”表示十六进制,计算时需要将十六进制转换为十进制进行计算,但为了方便,我们可以直接在十六进制下进行运算,只要确保乘以16即可。
2000H转换为十进制是8192,但在这里我们保持十六进制运算,16d * 2000H相当于2000H左移4位,结果是20000H。
再加上偏移地址2200H,得到物理地址 = 20000H + 2200H = 22200H。
结果:
存储器的物理地址为22200H。
(微机原理的)若CS=8000H,则当前代码段可寻址的存储空间范围是80000H~8FFFFH。
在实地址方式下,物理地址是通过段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上段内偏移地址即可得到物理地址。计算方法为物理地址=段地址*16d+偏移地址。
所以当前代码段可寻址的范围是:8000:0000H~8000:FFFFH,转化成物理地址是80000H~8FFFFH,一共64K。
扩展资料:
物理地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。它是用二进制数来表示的,是无符号整数,书写格式为十六进制数。
它是出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
以上就是物理地址怎么计算的全部内容,物理地址的确是由段地址和偏移地址共同决定的,计算公式是物理地址 = 段地址 * 16 + 偏移地址。在此公式中,16 代表的是十六进制数,因此在进行计算时,需要确保所有的地址值都是使用同一种进制,通常是十六进制。首先,若地址值以十六进制表示,可以直接相乘和相加得到物理地址。例如,内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。