. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  问几个问题,关于内存地址  [已解决] 回复[ 6次 ]   点击[ 467次 ]  
zhhaogen
[帖 主]   [ 发表时间:2010-07-20 11:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-07-20 10:16
1.cpu是16位的,也就是说最大能表示FFFFH(4位8进制),物理地址是20位的,也就是说能传输FFFFFH(5位8进制),如果段地址为FFFFH,偏移地址为FFFFH的话,物理地址=FFFFH*10H+FFFFH=10FFEFH明显大于FFFFFH,这不是会出错吗?
2.物理地址是指内存或硬盘吗?物理地址最大范围是1M(0-FFFFFH),而内存条肯定是不止1M的
zhhaogen
[第1楼]   [ 回复时间:2010-07-23 20:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-07-20 10:16
是我问题太简单了?还是太难了?三天了都没人回答
007vivi
[第2楼]   [ 回复时间:2010-07-27 09:57 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2008-11-09 15:22
1.段地址不可能是FFFFH,应该是低4位以0结尾的.
2.物理地址就是内存地址,段地址可能出现重叠.表示的范围就很大了.
xinfeiyang
[第3楼]   [ 回复时间:2010-07-27 20:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-07-27 20:05
你好撒!
我也是刚学习这本书了!
但是对于你的提问我有点疑惑了!
1、首先段地址是10H的倍数,所以你给出的段地址是错误的,不可能有这种段地址
2、物理地址的计算方法是正确的,但是这仅仅只是它的一种计算方法,我们可能列举的是一个比较特殊的实例,计算的物理地址比实际的机器物理地址要大,但是也没有关系啊,证明了cpu可以访问所有的物理地址,这样很好啊?
3、物理地址就是内存的地址,O(∩_∩)O~,其实对于内存的访问是根据不同型号的计算机处理器cpu来的吧
比如说我们的计算机cpu基本都是32位吧,那么它的最大寻址能力就可以达到2G了
完全可以访问到所有的内存空间吧
不知道我说的对不对
不对的地方希望可以指出,一起学习一起进步了!
xinfeiyang
[第4楼]   [ 回复时间:2010-07-27 20:38 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-07-27 20:05
32位应该是4G,呵呵!
xiilin
[第5楼]   [ 回复时间:2010-07-27 23:04 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:0
注册日期:2010-02-06 21:41
1.段地址是0xFFFF,偏移地址是0xFFFF的话,对应的地址是FFFFF0+FFFF=10FFEF,为了访问0x100000到0x10FFEF的地址,增加了第21根地址线A20,当A20地址线关闭时,遇到0x100000以上的地址就从0开始重新计算。因此到了80386之后,如果想进入保护模式,必须打开A20地址线。
2.物理地址指的是内存单元的编号,跟硬盘无关,物理内存如果大于这个地址空间也是没用的,浪费掉了。而保护模式下地址空间有4GB,即使你的内存不够这么大,也是可以使用0xFFFFFFFF这个地址的,这由操作系统实现。
zhhaogen
[第6楼]   [ 回复时间:2010-08-15 11:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-07-20 10:16
此贴由 贴主 于 [ 2010-08-15 11:22 ] 结贴。 结贴原因:问题已解决
得分情况: 2楼(007vivi):1分   3楼(xinfeiyang):1分   4楼(xinfeiyang):1分   5楼(xiilin):7分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved