qwert1110 发表于 2017-9-25 00:11:50

为圆梦 发表于 2017-9-25 03:15:18

偏移地址最大偏移不是FFFF吗,然后计算...

丶忘却的年少o 发表于 2017-9-25 09:17:42

你反过来思考:
偏移地址的范围是0—FFFFh对吧,SA=(物理地址 - 偏移地址) / 16。最大是2000h也没错吧。问题在最小,我给你分析下。
20000-FFFF = 10001算式答案是对的,但是这样除以16就丢失了后面的有效位1,所以肯定是错的。在思考下除以16后要能去掉,所以最后肯定是0,那段地址最小就只能是10010,那么只有把偏移地址的最大值缩小到FFF0H,20000-FFF0 = 10010才行。
所以SA的最小是1001h,最大是2000h

qwert1110 发表于 2017-9-25 18:12:05

丶忘却的年少o 发表于 2017-9-25 19:04:34

qwert1110 发表于 2017-9-25 18:12
是不是可以这样理解
偏移地址=0~FFFFH
SA=20000H-0(0=偏移地址)/16=2000H 这是最大条件


最大条件理解是对的,最小不对,没理由偏移地址/16,虽然看上去结果是对的,但是EA是什么,没有这个定义的,这只能说是你自己对题目解法的算法,实际是不能这么算的。

qwert1110 发表于 2017-9-25 19:31:54

丶忘却的年少o 发表于 2017-9-25 20:42:03

qwert1110 发表于 2017-9-25 19:31
EA=偏移地址

虽然我说的很抽象,这个FFFFh-Fh=FFF0H 这是为啥呢老师?

EA是偏移地址没错,但是你EA/16了,就没概念了,不是偏移地址了,而且FFFF/16不就损失了最后F的精度了嘛,那这么想想你觉得最后的答案还会对吗,都不精确了不是。
FFF0不是那么得来的。我用最容易懂的理解再和你说一下:
偏移地址最大是FFFFh,但是得到的段地址*16的值是20000 - FFFF = 10001,要是直接除以16就会损失最后的精度,1000*16+FFFF = 1FFFFh,是不是到不了20000h,那说明段地址*16不可能是最小的10001h,还要往上增加,那对应的偏移地址是不是要减小;那10002h那,偏移地址就是FFFEh算一下,还是1FFFEh,还是不行,还要往上加……当段地址*16=10010h,段地址就是1001h,偏移地址是FFF0h,1001*16+FFF0=20000h,刚好可以了。

qwert1110 发表于 2017-9-25 21:12:37

丶忘却的年少o 发表于 2017-9-25 21:58:59

qwert1110 发表于 2017-9-25 21:12
有点明白了 谢谢老师..哈哈

别客气,我也是学生啦{:10_278:}

qwert1110 发表于 2017-9-25 21:59:57

页: [1]
查看完整版本: 关于断的概念检测点2的问题