. : : 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