检测点 2.2
第二题 为什么是 1001H*16+FFF0H=20000H而偏移地址 不是FFFFH呢
orz。。。。
十六进制乘以16相当于 左移一位 即;10010
10010h+fff0h=20000h 曲终人散 发表于 2011-9-15 09:55 static/image/common/back.gif
十六进制乘以16相当于 左移一位 即;10010
10010h+fff0h=20000h
我觉得 我没说清楚 ┭┮﹏┭┮
是为什么 不是
SA*16+FFFFH=20000H
mint 发表于 2011-9-15 09:57 static/image/common/back.gif
我觉得 我没说清楚 ┭┮﹏┭┮
是为什么 不是
SA*16+FFFFH=20000H 那么sa*16就会等于20000h-ffffh=10001h很明显这个结果是错误的因为sa*16必须是16的倍数
那么我们用偏移地址fffeh看一下 很明显结果也不是16的倍数
继续偏移地址fffdh的话 也不是16的倍数
这样继续直到偏移地址为fff0h的时候 就满足了16的倍数
LZ看起来好像跟前几天的网友有相同的疑问?
http://bbs.fishc.com/forum.php?mod=viewthread&tid=4177&fromuid=107959
里边我有详细解释,在此就不再贴一遍了
简单来说,偏移地址是从0000H~FFFFH,
我们想要找的地址是20000H,但是
1001H*16+FFFFH=2000FH
注意到了吗?段地址1001H加上偏移地址FFFFH会来到了2000FH,
多出了F(就是15字节),但是题目实际上想要找的地址是20000H,
该怎麽办呢?把偏移地址减F吧!於是
1001*16+FFF0H=20000H
就这麽出炉了.
鱼老师的意思不是偏移地址只有到FFF0H,
只是因为题目给的设定使得使用最大的偏移量FFFFH的时候
会多出了F出来,把这个多馀的F去掉而已.
楼主对段地址和偏移地址没弄清楚,进制转换不明白,建议再看一下视频 我也是迷迷糊糊的明白了点还有没有其他的例题 多看看就懂了 http://www.pgpop.com/image/face1.gif顶起来,支持楼主 顶~~~~~~~~~~~~~~~
http://bbs.hangzhou.com.cn/images/default/sigline.gif
防辐射孕妇装排名 原来如此呀!!我总算明白了!!1 嘻嘻!1谢谢高人们的解答啦!!{:1_1:} 强烈支持楼主ing……
页:
[1]