. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点2.2(2)  [待解决] 回复[ 20次 ]   点击[ 1537次 ]  
lxvison
[帖 主]   [ 发表时间:2011-08-13 20:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-11-28 00:00
(2) 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。 
2000H有任何问题,我感觉1001H是凑出来的。我算出来是1000H
SA=(20000H-EA)/16
SA=(20000H-FFFFH)/16
SA=(10001H)/16=1000.1H
大侠们我知道1000H是寻不到20000H的,到1001才可以20000H,我感觉我是凑出来的,四舍五入,小数点后面1肯定不要了呀?
tomato
[第1楼]   [ 回复时间:2011-08-14 09:45 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
根据具体情况判断是舍还是入。
yipianyipian
[第2楼]   [ 回复时间:2011-09-11 21:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-21 21:07
没感觉吧?
如果十六近制也有小数的话,真的伤不起了,太复杂了吧,索性进一法!!!
chinatree
[第3楼]   [ 回复时间:2011-09-11 22:16 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
除了十进制有小数,别的都没有,楼上请放心。
weige2640
[第4楼]   [ 回复时间:2011-10-09 15:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-05 14:00
我的疑问也在这个最小值 SA=(10001H)/16=1000.1H ,最右边的1丢失,结果是1000H,
但1000H是寻不到20000H的,
最多能寻到1000H * 16 +FFFFH=1FFFFH,距离20000H查1,
所以加了个1,结果变成1001H,此时能寻到的最大值为1001H * 16 +FFFFH=2000FH,
2000FH早已远远大出20000H,肯定能寻到喽。。。

新手,个人理解,如有不对大家多指点,谢谢。
weige2640
[第5楼]   [ 回复时间:2011-10-09 15:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-05 14:00
又看见个帖子这么写的 
SA=(20000H-EA)/16 
  =(20000H/16)-(FFFFH/16)             // 我详细的分解
  = 2000H - 0FFFH                      // 除16就是右移,EA最有边的F丢失
  =1001H

所以EA取最大值时(FFFFH),SA=1001H 

哎,,,迷糊了,咋回事呢?。。
ljl
[第6楼]   [ 回复时间:2011-11-25 23:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-11-19 15:29
第5楼的这种计算是错误的,数字公式都弄错了的。
3楼说法有道理。
chinatree
[第7楼]   [ 回复时间:2011-11-26 04:05 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
汗,快俩月了都,其实还有一种使用在FPU中,叫浮点数(小数),但是它也是以2进制存放的,宽度为32位和64位(386下可以达到80位),理论上可以表示任意大的数,只是表示的方式不同。而且有套专门的指令集。
e56004474
[第8楼]   [ 回复时间:2011-12-09 00:10 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:1
注册日期:2008-09-04 16:35
SA=(20000H-EA)/16 
改这样:
SA=(20000H-EA)/ 10H

这样你们就看明白了,别把进制搞错了。。。。
wjb0001
[第9楼]   [ 回复时间:2012-02-18 15:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-20 08:57
是不是地址加法器都是16位的,没有20000参入计算啊
就是说地址计算时时按照
SA=(20000H-EA)/16  
  =(20000H/16)-(FFFFH/16)             // 我详细的分解 
  = 2000H - 0FFFH                      // 除16就是右移,EA最有边的F丢失 
  =1001H 
这么算的,不是完全按照数学公式来的
xmxxue
[第10楼]   [ 回复时间:2013-02-23 15:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-22 12:29
不明白,个人认为:最小是1000,最大是1FFF。
xmxxue
[第11楼]   [ 回复时间:2013-02-23 15:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-02-22 12:29
段地址最大不能是2000H,因为地址是从0开始的,20000H单元,地址最大是1FFFF.
zhangyuangan
[第12楼]   [ 回复时间:2013-03-03 01:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-03 00:57
四楼正解,1000H无法寻到20000H,所以最小段地址为1001H
hide2may
[第13楼]   [ 回复时间:2013-03-10 01:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-11 22:46
哦, 總算弄明白了, 因為 物理地址(EA) = 段地址(SA) x 16 + 偏移地址

在一個段的開始, 即偏移地址=0 時,
EA = SA x 16 + 偏移地址
20000H = SA x 16 + 0
SA =2000H

在段的最尾時, 偏移地址=FFFFH
EA = SA x 16 + 偏移地址
20000H = SA x 16 + FFFFH
SA x 16 = 10001H
SA = 1001H (用第4及12樓的解說)
aben126
[第14楼]   [ 回复时间:2013-07-10 10:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2013-06-27 08:42
这个题目我想了好久,看了jkuncle的学习博客
发现我们问题全想错了。 
比如这数据在1H这位置,那这SA就必定小于或等于1了 

这题应该是两个变量SA跟偏移。
所以答案应该是最小为0最大为2000

所以后面那个无法寻到的应该是SA<0H大于2000H
aben126
[第15楼]   [ 回复时间:2013-07-10 10:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2013-06-27 08:42
这其实是个想法误区。

我们都把这个数据的范围定在10000-20000中了。

这还算不错的,我有一次想,这个数据放在20000H中,是不是这个20000H中就是20000H~2FFFFH……
boon
[第16楼]   [ 回复时间:2014-01-22 10:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-01-21 22:13
我才看了两个晚上,就到了这里,不会有些毛糙吧
ben_feng
[第17楼]   [ 回复时间:2014-04-26 02:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-12-22 18:01
当确定一个物理地址后,我觉得不是所有的偏移地址EA的范围都是固定的0000H~ffffH,这里正好是一个例子不是吗?按照SA的取值范围1001H~2000H,EA的范围是0000H~fff0H.可能是由于机器计算时的精度,导致范围变小。
regotodo
[第18楼]   [ 回复时间:2014-05-29 15:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-05-27 13:40
详细可看p25小结内容,仅用偏移地址来寻址最多可寻64KB个内存单元。偏移地址为16位,他的变化范围只有0到FFFFH.所以,SA最小是1001H。就像是给定了一根棍子长度,你要站多高才能让这根棍子打到树上的果子。
1361817133
[第19楼]   [ 回复时间:2015-01-23 20:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-11-21 10:38
十进制的16  转化为十六进制的10
523014115
[第20楼]   [ 回复时间:2015-03-23 18:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-03-23 17:52
不是有提示吗 SA为多少时CPU无法寻址到20000H  ,sa=1000h 即无法寻址到,所以sa=1001H
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved