vaultboy 发表于 2016-1-27 17:14:14

汇编语言检测点2.2,大神帮帮我!

我的思路是:最小SA=(20000H-FFFFH)/16=0BA2,可正确答案是1001H;
                  最大SA=(20000H-0000H)/16=1745H,可正确答案是20000H;
会不会是我忽略了段地址必须是16的倍数?可是第一题中的段地址0001H也不是16的倍数啊,大神可以告诉我哪些概念混淆了吗?{:9_241:}

vaultboy 发表于 2016-1-27 18:11:51

刚刚又想了一下,16进制下的除以16就是在后面减少一个0,但最小的SA1001H还是想不明白。

人造人 发表于 2016-1-27 20:31:20

你的思路是对的

最小SA=(20000H-FFFFH)/16=0BA2,可正确答案是1001H;
20000h - ffffh = 10001h
10001h / 10h (16== 10h) = 1000h (这里直接左移一位)
那么
1000h * 10h + ffffh = 1ffff
现在偏移地址已经最大,但还达不到 20000h
现在sa + 1
1001h * 10h + n (这个是偏移地址) = 20000h
那么
20000h - 1001h * 10h = fff0h
所以
sa最小等于 1001h
偏移地址等于 fff0h

下面那个自己分析

vaultboy 发表于 2016-1-27 22:22:52

人造人 发表于 2016-1-27 20:31
你的思路是对的

最小SA=(20000H-FFFFH)/16=0BA2,可正确答案是1001H;


原来是这样,多谢教导!
页: [1]
查看完整版本: 汇编语言检测点2.2,大神帮帮我!