|
主题 : : 偏移地址??? [待解决] |
回复[ 13次 ]
点击[ 638次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-03-27 21:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-20 20:30 |
看书好久了,一直有个问题很困扰,就是段地址和偏移地址之间的关系以及变化规律,哪位大哥能帮忙详细讲解一下,小弟感激不尽,先谢谢了! | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-03-27 21:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-19 15:45 |
段地址*16+偏移地址=物理地址
偏移地址的范围为0H~FFFFH
所以反过来来看,段地址一般是16的整数倍 | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-03-28 09:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28 |
先说说你自己的理解,哪里困惑了,给个实例,一起来看看 | | |
|
|
|
|
[第3楼]
[ 回复时间:2011-03-28 16:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-20 20:30 |
|
|
|
|
|
[第4楼]
[ 回复时间:2011-04-01 07:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-27 20:45 |
|
|
|
|
|
[第5楼]
[ 回复时间:2011-04-03 01:10 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-02 01:18 |
我也很纠结 刚看到那就卡哪啦 相信在理解一下应该可以看懂 呵呵呵 | | |
|
|
|
|
[第6楼]
[ 回复时间:2011-04-07 19:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-07 16:21 |
偏移地址寻址就是以段地址为基准 计算从段地址到内存单元物理地址所发生的位移大小 这个值就成为偏移地址
以数学的角度来说 它就是一个相对距离(相对段地址) 书中有个学校到图书馆的例子 仔细体会下就OK了 | | |
|
|
|
|
[第7楼]
[ 回复时间:2011-04-08 13:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-07 13:42 |
可以参考书中图书馆的例子,多看就会明白了!因为8086是16位,但是有20为的地址线,所有物理地址就用段地址*16+偏移地址表示了! | | |
|
|
|
|
[第8楼]
[ 回复时间:2011-04-12 13:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-12 08:35 |
学完操作系统原理,再看应该好理解些,
考虑地址范围0~0xFFFFF,共0x100000个单元,寻址时,光这个地址存储就得用3个字节,24位,而16位的寄存器存储不了,所以用段地址+偏移地址方式表示
如1234H*16+4567H==>168A7H 合成一个这样的地址,这样可以寻址空间就为16M了。 | | |
|
|
|
|
[第9楼]
[ 回复时间:2011-04-13 21:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-03-27 21:54 |
段地址*16+偏移地址=物理地址
偏移地址的范围为0H~FFFFH
所以反过来来看,段地址一般是16的整数倍
------------------
回复:不是吧,是起始地址为16的整数倍吧,段地址怎么一般是16的整数倍呢?? | | |
|
|
|
|
[第10楼]
[ 回复时间:2011-04-28 16:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-28 16:01 |
段地址和偏移地址之间的关系以及变化规律?
他们之间有什么关系和规律,无非就是共同组成一个物理地址空间罢了。
要说关系就一个:一个段地址可以偏移地址有0~FFFF个
有人说段地址是16的整数倍,千万别迷糊这句话,这句话有个条件:那就是对于一个20位的地址来说是这样。
但是对于一个任意的数据,你都可以把它设定为段地址,段地址的意思就是说:“从这里开始”你可以偏移0~FFFF个位置去找东西。 | | |
|
|
|
|
[第11楼]
[ 回复时间:2011-04-28 16:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-04-28 16:01 |
回复:[第10楼]
不是吧,是起始地址为16的整数倍吧,段地址怎么一般是16的整数倍呢??
------------------
这个是有条件的,是对于20位的物理地址来说的。看楼上的解释。 | | |
|
|
|
|
[第12楼]
[ 回复时间:2011-04-28 17:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-01-15 22:31 |
段地址*16+偏移地址=物理地址
偏移地址的范围为0H~FFFFH
所以反过来来看,段地址一般是16的整数倍
------------------
回复:不是吧,是起始地址为16的整数倍吧,段地址怎么一般是16的整数倍呢??
------------------
回复:是一定的 段地址*16+偏移地址=物理地址
不是16的倍数 那物理地址又是多少了呢 | | |
|
|
|
|
[第13楼]
[ 回复时间:2011-04-29 11:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:31
信誉值:3
注册日期:2009-06-15 19:20 |
段地址*16+偏移地址=物理地址
偏移地址的范围为0H~FFFFH
所以反过来来看,段地址一般是16的整数倍
------------------
回复:不是吧,是起始地址为16的整数倍吧,段地址怎么一般是16的整数倍呢??
------------------
回复:是一定的 段地址*16+偏移地址=物理地址
不是16的倍数 那物理地址又是多少了呢
------------------
回复:
段地址当然不一定为16的整数倍,没有依据,更没有规定。
通过“段地址*16+偏移地址=物理地址”
可以看出对当偏移地址为0000h时候,物理地址=段地址×16,则应该是:可寻址范围内的首单元地址为
16的倍数。 | | |