关于检测点11.2的答案我有点问题
答案是:CF OF SF ZF PF
mov al,10H 0 0 0 1 1
add al,90H 0 0 1 0 1
我按无符号计算是:00001
我按有符号计算是:0 0 1 1 1
但答案为什么是: 0 0 1 0 1呢
不理解!!!!
我直接说运行完add al,90后的标志寄存器给你听吧!
没错上面的add al,90H 0 0 1 0 1 没有错!而是你计算错误了。。。
首先我们来分析你说的(我按无符号计算是:
CF OF SF ZF PF
0 0 0 0 1
说下SF吧!
这个AL标志寄存器它的最高位也就是(第八位)=1 ;所以它是SF=1;这个SF无符号也可以拿来用有符号也可以用。
再说下你说的有符号吧!(我按有符号计算是:0 0 1 1 1):
请问:为什么ZF你要说它是1(ZF=1)?????? 计算结果A0H,它的值用2进制换(1001 0000)它是有值的啊!怎么能说它没有值呢!
心得:再运算的时候其实运算结果CF OF SF ZF PF 它都是帮你计算有符号数和无符号数的结果了!
小熊猫party 发表于 2012-2-20 04:33 static/image/common/back.gif
我直接说运行完add al,90后的标志寄存器给你听吧!
没错上面的add al,90H 0 0 1 ...
谢谢哈,应该是我二进制转十进制计算错了 d al cf of sf zf pf
sub al,al {0} 0 0 0 1 1 {结果为0,是偶数。没借位,没溢出。}
1. mov al,10。 {10} 0 0 0 1 1 { mov 指令不影响标志寄存器 }
2. add al,90 {0a0}0 0 1 0 1 {有符号数。+16{00010000}} -122{1101111。=-96. 无符号数。00010000+10010000}
3. mov al,80 {80} 0 0 1 0 1 {同上}
4, addal 80 {00} 1 1 0 1 1 {有符号数。-128{1111111}-128{1111111}}=-256 、无符号。10000000+10000000}
5. mov al0fc {fc} 1 1 0 1 1 {不解释}
6. add al。05 {101} 1 0 0 0 0 {有符号数 -4{11},5{101}} =1 ,无符号。11111100+00000101}
7 。 mov al7d {7d} 1 0 0 0 0 {依然不解释}
8. add al 0b {88} 0 1 1 0 1 {有符号数 125{1111101},11{1011}。=136 无符号。01111101+1011 }
刚做出来的。不知道错了没。
页:
[1]