首页 > 编程知识 正文

段式逻辑地址转物理地址,什么是物理地址和逻辑地址

时间:2023-05-04 20:17:40 阅读:155709 作者:674

最近在学8086! 提问“8086 CPU可提供20位地址信息,可直接访问1M个存储单元,但CPU内部可用于提供地址信息的寄存器均为16位。 如何用16位寄存器实现20位寻址”,这一点我很清楚。

逻辑地址是指允许在程序内组织的地址,8086的逻辑地址分为段值和段内偏移两部分,表示为“薄蜗牛:段内偏移地址”。

以前,20位的地址信息可以访问1M个存储单元,是地址00000H~FFFFFH,但段发射机CS、DS、SS、ES中存储着这些地址的前4位。 12345H时,某段寄存器保存1234H的高位4位信息。 这就是轻薄的蜗牛。

然后,段内偏移地址是移动后相对于薄蜗牛的偏移量。

物理地址是指通过地址总线提供的20位地址信息。 物理地址=薄蜗牛*10H段内偏移地址。 将10H挂在薄蜗牛上是因为薄蜗牛是在当时取第4位的高度得到的,还原后,将薄蜗牛向左取第4位(10H=10000B ),例如(cs )=20A8H,)=2008H

我的认识:

8086CPU的内存空间为1MB,而8086CPU的地址总线只有16位。 2的16次方=65536 (0到65535 )是十六进制的FFFF,65536B/1024=64kb,即1段的长度。 最后引入了轻薄蜗牛* 16 (十进制)偏移地址=物理地址。 物理地址的表示方法是16进制*16,因此将16进制前进了1位。 四个二进制文件为十六进制,fffff(10485575 )/1024=1023kb ) 0到0~1023kb )。 【2的20次方为10485575/1024=1024KB】1024kb为1MB,所以轻薄蜗牛只需错开1个数量级进行偏移寻址,采用【轻薄蜗牛:偏移地址】的方法接入8086CPU1MB

斜体是参照

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。