继续看表2.3练习,我发现汇编还是挺有意思的。像黑客一般打下如下指令
一直执行,问ax=?截图
也就是最后一步00c5+0093=?
原以为会进位,没想到是ah算ah的,al算al的,溢出部分放弃,好吧
如果最后一步是add ax,93则会进位。
然后一直-t下去,果然进位了
看来,这些计算是按照寄存器位数算的。如果是16位寄存器,就按16位算;如果是8位寄存器计算,则按8位计算,计算时,只要位数对就行,不管ah和bl计算还是al和bh计算,都是一样的,都是8位寄存器。管它高位低位。高位低位也是人为设定的,计算机不认这个,只认位数是否相同。
当然,上边敲错了,只要知道用ax计算时,能进位,按16位计算即可。
继续看看检测点2.1
盲猜一下结果
(1)错(2)AX=3100(3)AX=3123(4)AX=6246(5)BX=826c(6)CX=6246(7)BX=826C(8)AX=05d4(9)ax=056c(10)ax=6c6c(11)ax=d36c(12)ax=d372(13)ax=d3e4(14)ax=6246
调试下,看结果
一路-t下去,第(8)步错了,因为826C+826C的最后一位确实是24,但是16进制,所以,尾数是8,向前进1,哈哈, 加的时候想到了16进制,进位忘了。
继续从第(9)步盲猜
(9)AX=0482(10)ax=6c82(11)ax=d882(12)ax=d888(13)ax=d810(14)ax=6246
继续-t执行下去,ok,good,这次对了
第(2)题,4步计算2的4次方,222*2=16,如果是2倍,加自身应该就可以了。
-t下去,果然
感觉王爽确实厉害,能够找到重点难点