橙子 发表于 2012-5-18 18:39:43

汇编语言2.2的问题求详细解答。

有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。泽SA应满足的条
件是:最小为(),最大为()。


是在不懂怎么怎么算,请知道的同学详细解答一下吧。

橙子 发表于 2012-5-18 20:40:47

因为偏移地址大小是0000~FFFF,所以用段地址乘以16,在加上最小0000和最大FFFF。 0001H * 16 + 0000 = 00010H

橙子 发表于 2012-5-18 20:42:02

第2小题:
先套用公式,段地址*16+偏移地址=物理地址
那么我们已经知道了物理地址为20000H

SA = 20000 - 0000H/ 16 = 2000H ;最大值

SA = 20000 - FFFFH/ 16= 10001H :最小值
那么这里就出问题了,10001不能被16整除,也就是段地址不能满足*16+偏移地址= 20000H
所以偏移地址就要发生变化来满足段地址*16+偏移地址=20000H
20000H - FFFF = 10001H
20000H - FFFE = 10002H
20000H - FFFD = 10003H
20000H - FFFC = 10004H
20000H - FFFB = 10005H
20000H - FFFA = 10006H
直到.......
20000H - FFF0 = 10010H
这时10010H满足16的倍数了
物理地址减去最大偏移地址除以16等于最小段地址
20000H - FFF0H/ 16 = 1001H;最小值
所以最小值是1001H,最大值是2000H

橙子 发表于 2012-5-18 20:43:02

最后还是靠自己。

退聊人物;战孜瞳 发表于 2012-5-18 22:10:19

:L刚想告诉你。你自问自答了。

橙子 发表于 2012-5-18 22:13:58

退聊人物;战孜瞳 发表于 2012-5-18 22:10 static/image/common/back.gif
刚想告诉你。你自问自答了。

都10点了我10点半就要睡觉了一个题目卡了我半个晚上了才开始看下一个单元的视频。所以你以后要多多关注下我的问题帖子嘛。

退聊人物;战孜瞳 发表于 2012-5-18 22:18:40

橙子 发表于 2012-5-18 22:13 static/image/common/back.gif
都10点了我10点半就要睡觉了一个题目卡了我半个晚上了才开始看下一个单元的视频。所以你以后要多多关注下 ...

物理地址=SA*16+EA   

20000h=SA*16+EA   

SA=(20000h-EA)/16=2000h-EA/16   

EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值   

EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值

luosheng01 发表于 2012-5-19 01:10:31

学习了。。。初学汇编。。虽然有点不是很明白
页: [1]
查看完整版本: 汇编语言2.2的问题求详细解答。