注册 登录
编程论坛 汇编论坛

始终不明白0:200为何等于0020:0000

luohua2007 发布于 2007-05-17 12:34, 808 次点击
0:200 - 0:23F = 0020:0000 - 0020:003F

看不明白为什么会这样,有什么换算公式或者什么规定啊,
请大家详细说一下把,
总觉的0:200的段地址因该是0000,偏移地址是2000才对,
可书上却解释成0020:0000。
想了几天也没想明白,尽管我知道书上是对的,可还是搞不明白
和学过的规则完全不一样
4 回复
#2
guancracker2007-05-17 13:03
是这样的CPU 可以用不同的段地址和偏移地址形成一个物理地址。
也就是说一个内存物理地址可以由不同的段地址和偏移地址形成。
只要满足的条件是:
内存物理地址= 段地址 X 16 + 偏移地址 就行了
那好,什么又是 段地址 X 16 呢?说通俗点就是在段地址后面加一个零 形成20位的地址

0:200为何等于0020:0000
0:200=00000+200=00200
0020:0000=00200+0=00200
它们都等于内存物理地址00200, 是一样的。


你可以D查看一下
是不是0:200和0020:0000的内容一样。因为都是指向内存地址00200H。
书上的说没错。在23页有解释。

[此贴子已经被作者于2007-5-17 13:04:28编辑过]

#3
I喜欢c2007-05-17 13:47

段地址与偏移地址搞懂没/

#4
luohua20072007-05-17 16:19
明白了, 谢谢2位指点
如何计算物理地址,我会,
只是没想到程序可以那样随便写,
那我的答案也算对了,就象这个样子
0:200=0000:0200=0020:0000

[此贴子已经被作者于2007-5-17 16:22:57编辑过]

#5
fishlover2007-05-21 00:50

.......学以致用

1