拼搏 发表于 2012-3-21 10:09:05

关于汇编第二章检测2.2,偏移地址寻址范围:0H~FFF0H,应该是0H~FFFFH吧

关于汇编第二章检测2.2,偏移地址寻址范围:0H~FFF0H,应该是0H~FFFFH吧

其实我介意 发表于 2012-3-21 14:10:45

我也有同样的疑惑,就不重复发帖了,坐等师兄解惑,感谢

莫名其妙 发表于 2012-3-21 14:21:11

本帖最后由 莫名其妙 于 2012-3-21 14:25 编辑

20000h
段地址+偏移地址=物理地址
偏移地址的范围最大是 0000H--FFFFH
所以
段地址(sa)*(16)+0000H=20000h 这个是段地址最大时 sa=2000这个就不用多说了 )*(16)这个要换成16进制的10H (这要补充一点 书上凡是数字后面没有H的都是10进制数要自己转换成16进制然后在数字后加H参与运算)
段地址(sa)*(16) + ffffh=20000h   这个是段地址最小时20000h-ffffh=10001/10h=sa=1000.1这里的0.1四舍五入掉(你应该没有见过什么时候段地址带小数点的吧!其实我也没见过!~)所以最小应该是1000   但是 , 1000*10H+FFFFh又不等于20000h 所以 最小应该是1001

这个偏移地址最大是多少?

当然是FFF0h咯!~

j2me 发表于 2012-3-22 19:46:26

1000*10H+FFFFH小于20000H所以min(sa)=1001,此时max(EA)=FFF0H

我还是不懂 发表于 2012-3-23 02:39:08

本帖最后由 我还是不懂 于 2012-3-23 02:41 编辑

我也是很疑惑, 刚得到答案,问题就是没注意书本上的一句话,段的起始地址必须是16的倍数,20000H减去最大的偏移地址必须是16的倍数,那么20000H-FFFFH=10001H不满足是 16倍数那怎么办呢,只能减小偏移,直到FFF0H,得到的段地址为(20000H-FFF0H)/16=1001H

谢青源 发表于 2012-3-27 04:02:52

做这题的时候,我们应该是用偏移地址来满足段地址,而不是先算段地址,应该取偏移地址的最小值和最大值来算出出段地址(SA),这样比较容易理解,如果先算段地址后算偏移地址的话很难理解,所以段地址要和偏移地址要配合运算。:lol

谢青源 发表于 2012-3-27 04:05:35

之前都没有真正的投入到这个问题中,现在才得出这样一个结论.....我们在做监测点的时候都应该要深入的去探讨其中的原理,这样才能更好的学习下去!
页: [1]
查看完整版本: 关于汇编第二章检测2.2,偏移地址寻址范围:0H~FFF0H,应该是0H~FFFFH吧