小甲鱼零基础学汇检测题2.2问题
http://b226.photo.store.qq.com/psb?/11fc2ea2-1d72-4769-9cbd-24569931dfd9/C7pOoJMRrZOBy.BPZdE.1KLH7Q.pCKHI2Gpkze.vDaU!/b/dPN8uYYoFwAA&bo=vwL1AAAAAAABAG8!我就是想知道要是根据算法运算的话该先算括号里的,为什么那有括号不先算括号内的?
http://b226.photo.store.qq.com/psb?/11fc2ea2-1d72-4769-9cbd-24569931dfd9/C7pOoJMRrZOBy.BPZdE.1KLH7Q.pCKHI2Gpkze.vDaU!/b/dPN8uYYoFwAA&bo=vwL1AAAAAAABAG8! :(第一次发帖不好意思。 新手坐等 谢谢!不让没法向下学习了 haohhhhhhhhhhhhhhhao 因为我们知道,偏移地址的取值范围是0到FFFF,而定位内存是段地址*16加偏移地址来定位的。所以在内存单元地址一定的情况下取最大偏移地址时就可以得出最小的段地址,因此第一个填空的计算法是 SA*16 + FFFFH= 20000H,SA = (20000H - FFFFH)/16 = 20000H/16 – SA/16 = 2000H – SA/16 。注意计算,这里面除数16,换算成16进制就是10H,你说的括号先计算可能是把20000H看成2000H了,因此SA = 2000H – FFFFH/16 =2000H – FFFH = 1001H 无限幻想 发表于 2012-11-3 14:01 static/image/common/back.gif
因为我们知道,偏移地址的取值范围是0到FFFF,而定位内存是段地址*16加偏移地址来定位的。所以在内存单元地 ...
自己看晕了我,看的时间太次了 刚看到是20000H一直以为是2000H 。谢谢了以后不懂的还可以问你吗? 灰太狼大哥哥 无限幻想 发表于 2012-11-3 14:01 static/image/common/back.gif
因为我们知道,偏移地址的取值范围是0到FFFF,而定位内存是段地址*16加偏移地址来定位的。所以在内存单元地 ...
还有直接先减后除的话,10001H除以16等于多少?1000H?,1000H*16+FFFFH =1FFFFH,明显是不对的,少了1,因此你取最大的偏移地址FFFF,是寻不到20000H单元的,如果你的计算结果是1001H*16,为10010,不用FFFFH就FFF0H偏移地址就能寻到,而我们无论是段地址也好,偏移地址也好都是8bit,一个字节的,1000H段地址肯定寻不到20000H的内存单元,1001H能寻到,你说最小的段地址答案是多少?只能是1001H了,除以16是会产生余数,影响结果的。段地址不可能有小数点,是不是? 楼上的正解 衣冠者禽兽也 发表于 2012-11-3 15:07 static/image/common/back.gif
楼上的正解
谢谢各位大神的解答、 新手坐等 谢谢!不让没法向下学习了
页:
[1]