mrxiao 发表于 2011-9-19 23:25:06

.........

add,ah,ah                     AX=D882H
add al, 6                         AX=D888H
add al,al                        AX=D810H       没整明白。哪位师傅帮我一下。。。
mov ax,cx                     AX=6246H

x8888k 发表于 2011-9-19 23:59:05

mrcoolxdg 发表于 2011-9-20 00:11:38

分成高位和地位的时候以字节为单位运算的时候h和l是独立的 没有关系的
88h+88h=110h这个你应该懂的吧 然后110h只能取后两位 前面溢出的一位就不要了
至于前面的1去哪了我们现在还没有学到

mrxiao 发表于 2011-9-20 23:08:45

ADD AL ,AL   AX=D810H   AL表示的不是低位?怎么是88H+88H呢还是没弄明白 比较笨 呵呵。。

mrcoolxdg 发表于 2011-9-21 00:50:36

add al,al 这一步执行的是上一步add al,6ax=d888h
这里你应该明白吧 这个如果不懂就难了 呵呵
然后说一下ax=d888h ax又分为ah和al 就是高位和地位(high和low的缩写) 这个明白吧就是说d888分为ah=d8   al=88 就是把ax拆开为两个部分来说的前两位是高位 后两位是地位
然后到add al,al这一步了就是说al=上一步的al+al就等于这个不要求出来的al 的结果所以这个al就等于88+88=110这里是16进制的运算不懂的话就先把88转换成十进制加过之后再转回十六进制最好搞明白怎么运算看看相关资料 总之相加之后的十六进制的结果是110是不会错的
然后就是说只加al的话 ah的值是不变的还是之前的d8 但是al的结果是110 不过al和ah都是只有两位的 所以只能取后两位就是10,至于前面的数字去哪了 鱼老师还没有讲呢 所以al就是10了
然后ax=ahal=d810h 这次应该明白了吧我只能说这么多了 应该够清楚了
我也是新手学习的尽量了 希望你能理解但求大家共同学习共同提高
:lol

小甲鱼 发表于 2011-9-22 01:31:28

88H+88H == 110H
AL是字节大小,只能存放八位数据,110H超出部分只能舍弃,剩下10H

topcookie 发表于 2011-9-24 01:03:25

AL只有8位,所以取结果后2位,最前面那个1进位了,PWD寄存器中的CF位会被置1,CF位就是Carry Flag进位的意思

mrxiao 发表于 2011-9-27 23:13:52

谢了。。。弄明白了 呵呵
页: [1]
查看完整版本: .........