5.8 段前缀章节 的疑惑
本帖最后由 Lshui 于 2013-1-20 08:26 编辑师哥姐们,我遇到一个问题,为什么说:0:200~0:20b 单元等同于 0020:0~0020:b 单元呢?是如何把0:200~0:20b转换成0020:0~0020:b的?后来我细想后,觉得是不是我吧“等同于”给理解错了?。然后看到:它们描述的是同一段内存空间 ,这句话我稍微明白点了,是它们都在同一个安全空间段 内。按照我的这个想法,那既然在同一个段内是不是 0020:0~0020:b也可以是其他的任何一个数字(只要在这个安全段空间内),想到这里,我想,能不能把 0020:0~0020:b 修改成 0000:0~0000:b 呢?这样的话所传输的覆盖数据会从 这个安全段空间的起始地址开始覆盖数据。我是这样理解的不知道对不对。
写这些我修改了好几遍,不知道怎么问,问出来了自己想了想不合理又改,改来改去,就改成了这段话。
{:2_40:} 谢谢大家了。 本帖最后由 s0512 于 2013-1-23 07:45 编辑
0:200~0:20b 单元等同于 0020:0~0020:b 单元呢?
是如何把0:200~0:20b转换成0020:0~0020:b的?
;===============
段地址*16(十六进制为10H)+偏移地址=物理地址
0000:0200 = 0000*0010 + 0200 = 00200(物理地址)
0020:0000 = 0020*0010 + 0000 = 00200
所以,它们指向同一物理地址00200.
;=================================================
能不能把 0020:0~0020:b 修改成 0000:0~0000:b 呢?
;===============
答案是不可以.因为:0020:0 = 00200
而:0000:0 = 00000
如果理解了 段地址*16+偏移地址 = 物理地址 的话,你就会
理解:001f:10 也是等于物理地址的 00200的,这样的变通我
想同学也就不会觉得头晕了.
{:2_31:}
理解错误啊。书本想说的是 它们都可以访问的同样的内存单元,你修改了就差的十万八千里了 s0512 发表于 2013-1-20 10:00 static/image/common/back.gif
0:200~0:20b 单元等同于 0020:0~0020:b 单元呢?
是如何把0:200~0:20b转换成0020:0~0020:b的?
;=== ...
谢谢:$ 是我不细心,谢谢你的回答,很详细很通俗易懂。不好意思回复晚了,最近电脑出毛病了就装了下系统。嘿嘿。谢谢,我明白了。:lol s0512 发表于 2013-1-20 10:00 static/image/common/back.gif
0:200~0:20b 单元等同于 0020:0~0020:b 单元呢?
是如何把0:200~0:20b转换成0020:0~0020:b的?
;=== ...
明白啦。理解啦。终于又打败了一个问题。继续往前赶。谢谢:lol:lol 实习版主太牛了 1 0019:10 我算的是1A0 好多鱼^^ 发表于 2013-1-22 23:15 static/image/common/back.gif
实习版主太牛了 1
我犯了惯性错误!
谢谢同学的提醒!! s0512 发表于 2013-1-23 08:00 static/image/common/back.gif
我犯了惯性错误!
谢谢同学的提醒!!
哈哈看来我对啦 我以为我算错啦~\(≧▽≦)/~啦啦啦 真是被感动的痛哭流涕……
页:
[1]