美依衣MYY服饰 发表于 2012-6-25 21:31:52

求助,检测点3。1。[1]

http://www.fishc.com/uploads/allimg/101115/1_101115003726_1.png
上面第9。add ax,   ax=2c14是怎么得来的?
上面第13。mov bl, bx=0026   指的是哪个偏移地址?bx=0026又是怎么算来的?
上面的14. add al,bl   ax=000c   000c是什么算来的?

会游泳的猫 发表于 2012-6-26 08:04:48

建议从头认真看书思考题检测点都要完成啊

醉玉堡主 发表于 2012-6-26 10:09:58

首先第九行:偏移地址的取值范围为:0000h-FFFFH,也就是在段地址固定的时候从左到右的段地址你可以依次从0010-001F数,很明显【0004】的偏移地址对应的为:2ECC再加上ax=FD48=12c14,最大的数只能为16位,所以实际的值为2c14

醉玉堡主 发表于 2012-6-26 10:16:57

第十三行:刚才已经解释过了是从左数到第13个位置:它首先将取低位的bl存为【000c】的偏移地址对应的数值所以bx应该是0026.第十四行:第十三行中求出bl=26,由11行al=e6,两者相加得al=0c,al最多是8位,所以最终结果是ax=000c

美依衣MYY服饰 发表于 2012-6-27 21:48:23

醉玉堡主 发表于 2012-6-26 10:16 static/image/common/back.gif
第十三行:刚才已经解释过了是从左数到第13个位置:它首先将取低位的bl存为【000c】的偏移地址对应的 ...

谢谢了,弄懂了。

飞渡专业VPN 发表于 2012-6-27 22:30:36

上面第9。add ax,   ax=2c14是怎么得来的?
上面这句的意思是将ax现在值+偏移为的值2ECC后再给ax 得到的结果是12C14AX只能存放两个字节最高位的1去掉,得到2C14
mov bl, bx=0026   指的是哪个偏移地址?bx=0026又是?
6226 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
0001 02 0304 05 06 07- 08 09 0A 0B 0C 0D 0E 0F
这一句是将偏移中的值(26)给BL,那么上行中BX的高位是00H,现在的低位BL是26H所以BX现在的值应该是0026H 上面两行数字对应起来看上面的数是26,知道为什么0C是26了吧

上面的14. add al,bl   ax=000c   000c是什么算来的?
上面第11行得出AX=00E6H 那么AL应该是E6H第13行得出BX=0026H那么他的低位BL应该是26H 那么AL+BL=E6H+26H=10CH AL是8位的寄存器只能存话1字节,高位先理解成丢掉所以为0CH 第10行知道AX=0000H 那么高位是00H低现在的低位为0CH所以现在AX的值为000CH

不知道上面的能理解不
页: [1]
查看完整版本: 求助,检测点3。1。[1]