. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测2.2  [待解决] 回复[ 12次 ]   点击[ 765次 ]  
be900
[帖 主]   [ 发表时间:2010-05-07 11:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-29 15:49
以下是我的答案,帮忙检查下
1. 00010H~1000FH
物理地址=SA*16+EA
最小值: 0001H*16+0H=00010H
最大值: 0001H*16+FFFFH=1000FH
--------------------------------------------
2. 1001H~2000H
20000H=SA*16+EA 
最大值: 20000H=SA*16+0H  ==> SA*16=20000H
最小值: 20000H=SA*16+FFFFH  ==> SA*16=10001H

>>>SA需要是16的倍数. 那么公式算出来的答案1001H是不对的. 希望高手指点下...
----------------------------------------------
3. 
20000H=SA*16+EA
EA的取值范围是0H~FFFFH
当SA*16+0>20000H时, 得到SA>2000H
当SA*16+FFFFH<20000H时, 得到SA<1000H
hackzhaowei
[第1楼]   [ 回复时间:2010-05-07 17:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-03 15:55
设偏移地址为:A。 基础地址为B。 段地址为:SA。
 所以SA*16+A=20000H。
偏移地址A的变化范围为:0H-FFFFH,所以最大的基础地址B为:2000H。
当A为FFFFH时,可以求得基地址的最小值。
公式如下:B*16+(FFFFH-1H)=20000H。
因为存储单元是从0H开始的,所以偏移地址是0H-(FFFFH-1H)。
所以基础地址为1001H。
我想你是在这出问题了。
这个是我自己解答的,我开始也和你想的一样。如果有高手认为我是错的。我希望能交流交流。希望不吝赐教。谢谢。
flong158
[第2楼]   [ 回复时间:2010-05-08 01:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-08 00:59
算法没错,算出来最小值是10001H没错,但这个结果与段地址的定义冲突,是无效地址,所以要往右找最近的符合定义的有效地址为10010H(往左推就超出范围了),倒推到段地址即为1001H。

这个知识点要注意,段地址是四位数,如1000H、1001H,在后面加0是为了定义一种计算方法,在段地址设定好的前提下,如设定好是1000H,就只能以10000H去计算,不存在所谓的10001H、10002H。。。等等,这也是其定义要强调是16的整数的意思。
lin1712
[第3楼]   [ 回复时间:2010-07-12 15:45 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
第二题就像求5到10之间最大、最小的2的倍数(偶数)一样,最小值5不对要舍去,取6。
vern
[第4楼]   [ 回复时间:2010-07-14 16:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-07 12:01
你在算的时候进入了一个弊端,书上说“一个段的起始地址一定是16的倍数”,并不是说“段地址*16”里的“段地址”的开始位置。
这里“段的起始地址”说的是“基础地址”而“基础地址=段地址*16”。
ynkmsd
[第5楼]   [ 回复时间:2010-08-13 15:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-11 17:28
把我都搞晕了
xshz
[第6楼]   [ 回复时间:2010-08-25 03:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41
第二题就像求5到10之间最大、最小的2的倍数(偶数)一样,最小值5不对要舍去,取6。
------------------
回复:支持。

偏移地址为16位,最大为64KB,从0000h-ffffh共(ffff+1)h个EA。

20000h = sa*10h+ea  < sa*10h+(ffff+1)h

20000h < sa*10h+10000h

sa > (20000h-10000h)/10 = 1000h

比1000h大的最小数是1001h

故:sa=1001h

各位学长,这样理解对吗?
huang425618
[第7楼]   [ 回复时间:2010-09-06 13:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-20 21:47
嗯,如果这样最小为1001H 最大为2000H
那么偏移地址的寻扯范围就是0-fffo之间
即:20000H=1001H*16+fff0H
   20000H=2000H*16+0H
qinduohao3337
[第8楼]   [ 回复时间:2010-09-11 20:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-11 20:46
第二题:最小为什么不是0111H到2000H
偏移地址为0~00f0????
qinduohao3337
[第9楼]   [ 回复时间:2010-09-11 20:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-11 20:46
回复:[第8楼]
------------------
我错了,看明白了。当成二进制了。。。。。。。。。
cxpbl
[第10楼]   [ 回复时间:2010-09-17 15:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-16 18:13
看了这么多。。才知道1
tolearn
[第11楼]   [ 回复时间:2010-10-05 09:23 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-10-03 18:57
前面讲的都没问题,不过关于偏移地址的取值范围我是这样理解的————————
    偏移地址的范围说白了就是数学中排列组合里的求不同解的个数问题,16位就有2的16次方个不同解,
也就是FFFFH+1H个解。换成偏移地址的取值范围就是 0H到FFFFH 。
说明一下:1H到FFFFH就有FFFFH个数。
dhuzi
[第12楼]   [ 回复时间:2023-04-07 10:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2023-04-06 17:03
厉害啊!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved