computer007 发表于 2011-3-16 15:46:00

汇编语言2.2课后题

偏移地址最大为什么是FFF0啊?
为什么不是FFFF呢?

china0008 发表于 2011-3-17 12:48:23

8086的相同段,最大偏移确实为FFFF。但是你得看题意啊。你用 FFFF不就超过20000H了么?不要忘了咱的目标。就是要定位到20000H这个地址。

zzyital 发表于 2011-3-26 20:17:47

本帖最后由 zzyital 于 2011-3-26 20:25 编辑

版主我也是相同问题
为什么说用FFFFH会超过20000H呢?
------------------------------------------
我当时是这样求的
因为偏移地址范围是0H-FFFFH
当偏移地址=0H时,20000H-0H=20000H,再除以16,得出段地址=2000H,这个没问题
当偏移地址=FFFFH时,20000H-FFFFH=10001。。。。。。
看了答案是减的FFF0H,百思不得其解   还望能详细指出一下!
谢谢!
看了小甲鱼在其他地方的回复,明白了,因为我得出的这个10001不属于右移一位可以还原的类型,所以要找到可以直接右移一位就能还原的那一个值,即所谓的,一个段的起始地址必须是16的整数倍,现在也终于理解了这句话的含义了
其他朋友搞不懂的也可以参考下哦!
---------------------------------
另外,为何我用WIN的科学计算器,就算调到了16进制,用1*16=16呢,而不是10呢。。。。:Q

木吉他 发表于 2011-3-27 08:08:29

嘿嘿,这题当时偶也挠了很久.解题思路是这样的.

物理地址=段地址*16+偏移地址,偏移地址从0000H到FFFFH之间
给定物理地址为20000H,那么当偏移地址取0000H时,段地址SA=2000H [最大值]
当偏移地址取FFFFH时,段地址SA=10001/16,进位丢失余数为1000H,但当SA=1000H时,偏移地址取最大FFFFH,物理地址为1000H*16+FFFFH=1FFFFH,无法达到20000H,故余数需进位SA最小值为SA=1001H [最小值]
则SA应满足的条件是:最小为 1001H,最大为 2000H。
======分割线======
另外,你调到了16进制,用1*16=16,得到答案后转为十进制是22了.你先选十进制1*16得到答案后换到16进制,就素10了呀*^_^*

EntU 发表于 2015-5-27 05:11:42


强烈推荐:lol:
页: [1]
查看完整版本: 汇编语言2.2课后题