. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  CPU寻址范围的疑问  [已解决] 回复[ 5次 ]   点击[ 553次 ]  
scandy24
[帖 主]   [ 发表时间:2007-12-12 08:30 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
大家好,初学汇编,碰到一个问题不能太理解。
8086是16位的cpu,20位的地址总线。cpu寻址范围是2的16次方,就是64kb。看到2.8节段的概念的时候,问题就来了:
内存划分成若干个段,每个段的上限不超过64kb。我在8086的机器上插一根512mb的内存,如果按照分段的原理,每段为64kb,那么512mb的内存可以分成(512mb*1024)/64=8192个段。给出各个段的基地址以后,不是每个段都能被访问到么?换句话说就是512mb内存都可以访问。不是超过8086cpu的寻址空间了么?

好迷糊啊,望得道者指点迷津。
wdm
[第1楼]   [ 回复时间:2007-12-12 13:21 ]   [引用]   [回复]   [ top ] 
荣誉值:342
信誉值:0
注册日期:2007-12-06 10:21
cpu寻址范围是2的16次方,就是64kb。
==========
寻址能力跟数据中线没有关系,而是跟地址总线有关系。2的20次方是1M。

内存划分成若干个段,每个段的上限不超过64kb。我在8086的机器上插一根512mb的内存,如果按照分段的原理,每段为64kb,那么512mb的内存可以分成(512mb*1024)/64=8192个段。给出各个段的基地址以后,不是每个段都能被访问到么?换句话说就是512mb内存都可以访问。不是超过8086cpu的寻址空间了么? 
======================================
开来理解上还是存在很大问题的。8086采用的分段寻址方式,其物理地址=段地址*10H+偏移地址。段地址和偏移地址都是16位的,8086利用段地址和偏移地址构造成了一个20位的物理地址。这个物理地址才能决定内存的寻址范围,并不是楼主想的那样是 段地址*偏移地址 这样的寻址范围!
建议楼主看看《汇编语言》这本书的前两章的内容吧。
shanguianti
[第2楼]   [ 回复时间:2007-12-12 13:41 ]   [引用]   [回复]   [ top ] 
荣誉值:19
信誉值:0
注册日期:2007-10-31 16:24
8086拥有20位地址总线,它的寻址能力应该达到2的20次方,也就是1M的地址空间,假设你把512M的内存插入到主板上(尽管这些假设不成立,因为8086的内存插槽接口与现在的内存接口不一样),那么它也最多当成1M的内存使用(确切说是8086寻址的内存空间为1M,而这些空间并不全都在内存条里)。至于说8086是16位的CPU,这是针对CPU内部来说的。8086采用两个16位的地址合成一个20位的地址来访问内存的。内存的分段是人为的。希望楼主慢慢看书,相信用不了多久你会完全明白的。
scandy24
[第3楼]   [ 回复时间:2007-12-12 14:14 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
感谢楼上两位耐心的解答。本人正在看老王的汇编语言前两章,感觉受益匪浅。两位给我的指点同样让我受益匪浅,非常感谢。我想是我自己把寻址方式和寻址空间搞错了。
linux
[第4楼]   [ 回复时间:2007-12-13 11:08 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2007-12-13 11:02
其实8086最高能寻到1.64M的位置
现在32/64位的CPU了,内存想扩就扩:)
scandy24
[第5楼]   [ 回复时间:2007-12-18 20:07 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2007-12-10 14:26
此贴由 贴主 于 [ 2007-12-18 20:07 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(wdm):3分   2楼(shanguianti):3分   4楼(linux):2分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved