查看: 4209|回复: 0

存储器分段管理

[复制链接]
发表于 2009-7-3 21:13:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
存储器分段管理

    在8086微处理器中,在描述存储器地址时有三个相关的术语:物理地址、偏移地址和逻辑地址。
  物理地址是由8086的地址引线送出的20位地址码。这20位地址码送到存储器经过译码,最终选定一个存储单元进行读/写。物理地址可写成5位的十六进制数。
  偏移地址是相对于某段首地址的段内偏移量,用16位二进制代码表示,写成4位十六进制数,例如:004AH。
  逻辑地址是在程序中对存储器地址的一种表示方法,由某段的段地址和段内偏移地址组成。写成:段地址 : 偏移地址
例如:2000H : 0080H
  对存储器寻址起作用的是物理地址,8086对外有20位地址线,因此,存储器的可寻址范围为220=1MB。但是8086微处理器的内部结构是16位的,用户可用的寄存器也都是16位的。显然用16位的地址码无法寻址1MB的存储空间,为了解决这一矛盾,8086采用了分段的方法对存储器进行管理。
  存储器地址分段的具体做法是:把1MB的存储器空间分成若干段,每段的容量最大64KB,这样段内地址就可以用16位来表示。实际上,可以根据编程的需要来确定段的大小,它可以是64K字节范围内的任意多个字节。
  8086规定:从0地址开始,每16个字节为一小段,段的起始地址必须从任一小段(paragraph)的首地址开始,也就是说,段地址表示成20位的二进制地址码,其最低4位必须是"0"。
  存储器采用分段管理后,每个段的首地址(称为段基地址或段地址)保存在8086内部的CS、DS、SS和ES四个16位的寄存器中,我们可以对段寄存器设置不同的值以指向不同的段。
  16位的段地址和16位的偏移地址组合形成20位的物理地址,这就是8086的工作方式,这在80x86的寻址模式中称为实模式。  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|维修人员 ( 鲁ICP备17033090号 )

GMT+8, 2024-3-28 23:51 , Processed in 0.215865 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表