. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
段地址和偏移地址的疑问
[待解决]
回复[
5
次 ] 点击[
634
次 ]
qingjiaozhe2010
[帖 主]
[ 发表时间:2010-01-15 12:44 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2009-12-29 12:50
有一数据在21F60H内存单元中,给定段地址SA若想用偏移地址寻到此单元。SA满足的条件是最小是多少?
21F60-FFFF=11F61它不是16的倍数为什么相加后可以组成21F60
inrg
[第
1
楼]
[ 回复时间:2010-01-15 17:51 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:0
注册日期:2007-12-08 14:22
SA满足的条件是最小是多少?11F7
段地址必须是16的倍数 不是物理地址
qingjiaozhe2010
[第
2
楼]
[ 回复时间:2010-01-16 16:45 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2009-12-29 12:50
那他是不是16的倍数
hwenycocodq520
[第
3
楼]
[ 回复时间:2010-05-19 01:09 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2010-05-17 02:23
21F60H SA满足最小,则偏移地址取最大值FFFFH
21F60H-FFFF=SA*16
SA*16=11F61H,所以SA=11F7
11F7/16=16D为16的倍数,没错
jonytan
[第
4
楼]
[ 回复时间:2010-05-19 09:46 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2010-05-04 17:53
學習了!我個人是這樣認為:
因為段地址范圍: 0000-FFFF 那問SA滿足的條件是最小的是多少?
最大:SA*10(16D轉為10H)+0000=21F60
最小:SA*10+FFFF=21F60
現在算最小:SA*10+FFFF=21F60 = 21F60-FFFF=10SA = 11F61/10=SA 這里要留意 在計算機算 11F61 如除去10 等于11F0了!計算出來有錯,應加+1 即: (11F60+1)*10+FFFF=21F60
不知我這樣理解對不?
請各位指點!
謝謝!
tulip784461422
[第
5
楼]
[ 回复时间:2010-10-28 20:09 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2010-03-08 11:29
我们要用最小的段地址加上偏移地址之后保证能寻到21f60h单元,因为段地址最小,所以偏移地址尽量大,最大为0ffffh,又因为段地址×16+偏移地址=物理地址,此时段地址=(物理地址-偏移地址)/16吗?我们看,这样算出来的段地址是11f6h,但是用这个段地址×16+最大偏移地址ffff最终得到的物理单元地址是21f5fh,所以这个段地址已经超出了最小的段地址,加1之后才是最小段地址,保证能够寻到21f60h单元
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved