8086地址偏移量问题

wisdomzc 2007-03-29 09:39:45
为什么要设地址偏移量是4位?是因为它有20条地址总线,并且寄存器是16位,所以:20-16=4? 那32位处理器地址总线32位,寄存器有32位。它是不是就没有偏移量了?谢谢!
...全文
626 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
somosky 2007-04-01
  • 打赏
  • 举报
回复
学到了。。。
NoBlank 2007-04-01
  • 打赏
  • 举报
回复
基本上,你说的是对的。我尝试着解释一下:

主要是寻址方式与寻址空间的问题,由寻址空间与位长不一致引致的问题。
8086寻址采用“段:偏移”的方式(如SS:BP),段地址寄存器和偏移地址寄存器都是16位长的,实际的线性地址是20位,由“(段 << 4) + 偏移”得到。
32位CPU一般寻址空间也是32位线,直接产生32位的线性地址(不考虑描述符、分页等机制),因此不存在上述现象。

另外,相关地,80286后就有了实模式与保护模式的区别(当然,不仅仅是寻址方式的区别)。

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧