汇编网首页登录博客注册
cnhnyu的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2008-12-29 23:33] 关于段的大小以及偏移位数的问题

首先需要明白一个问题是,段是什么?

段是站在CPU的角度对内存的一种逻辑上的划分。由于8086的cpu无法直接表示20位的物理地址, 所以,只好采用2个16位的地址来表示一个20位的物理地址, 而这2个16位的地址一个称之为基地址,一个称之为偏移地址, 基地址也叫做段地址,而这个段的地址通常就存储在段寄存器中。段是cpu管理内存的一种手段和方式。


段的大小是多少?

段的偏移是从0000H到FFFFH, 这其中包括了0000和FFFF。段是逻辑上的划分, 所以段是可以重叠的, 一个段的开始地址、结束地址和另一个段的开始地址、结束地址,这四个地址完全可以一样, 所以最小值可以认为是0, 最大值是FFFFH-0000H + 1H = 10000H, 也就是64KB


在计算物理地址时,段地址究竟偏移多少位?或者乘以多少?

段地址偏移多少位是看你用什么进制表示的, 如果用2进制表示, 则向左偏移16位, 如果是16进制表示的, 则向左偏移1位, 同样, 乘以多少, 也是看你的进制, 平时用段地址×16, 这里面的16很显然是用的10进制, 如果用16进制, 应该是×10H
评论次数(2)  |  浏览次数(1020)  |  类型(默认类型) |  收藏此文  | 

[  mess   发表于  2008-12-30 18:52  ]

不错,整理的很清晰,踩踩 ^_^

[  younggay   发表于  2009-01-19 17:56  ]

嗯,说的挺对。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码