. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点2.2 第二题疑惑  [待解决] 回复[ 4次 ]   点击[ 317次 ]  
zawmon
[帖 主]   [ 发表时间:2011-05-01 16:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-01 13:46
有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为     最大为     

解题:
20000H=SA*16+EA
SA=(20000H-EA)/16
EA=0H~FFFFH

SA=2000H-0H~FFF.FH
SA=1000.1H~2000H
那就是说SA应该处于不小于1000.1H,不大于2000H
习题答案给出的是最小为1001H,最大为2000H

疑惑
在汇编语言中,小数部分应该怎么来处理理解
从题中可以看出SA在1001H~2000H之间,用偏移地址寻此单元,的确可以寻到
但是1000.1H~1001H之间同样可以寻到
这0.1H~1H之间应该怎么理解呢?为何排除在答案之外
wuliyun
[第1楼]   [ 回复时间:2011-05-01 16:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-18 12:45
段地址的起始位置必须是16的整数倍
zawmon
[第2楼]   [ 回复时间:2011-05-01 16:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-01 13:46
也就是说,结束位置也必须是15的整数倍了
那么,寻址范围只能是取实际计算出来的范围内的16的整数倍的最小整数为起始位置,最大整数为结束位置。
中间段也必须是16的整数倍来取吗?
wuliyun
[第3楼]   [ 回复时间:2011-05-01 17:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-18 12:45
对于8086,段的大小不能超过64KB(偏移地址是16位).

不清楚你说的"中间段"是指什么. 
段是编程时的一种安排,理论上来说,任何起始位置为16的整数倍,大小不超过64KB的一段连续内存都可以被看作或者说定义为一个段.
daniel_c
[第4楼]   [ 回复时间:2011-05-03 01:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-02 12:38
那个小数实际不存在的…因为他最小要大过1000.1…也就是说他地址至少要大过1000…而在1000下面的地址就是1001…满足条件…
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved