雨の印记 发表于 2012-2-19 23:42:32

关于检测点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呢
不理解!!!!

小熊猫party 发表于 2012-2-20 04:33:37

我直接说运行完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 它都是帮你计算有符号数和无符号数的结果了!



雨の印记 发表于 2012-2-20 12:16:59

小熊猫party 发表于 2012-2-20 04:33 static/image/common/back.gif
我直接说运行完add al,90后的标志寄存器给你听吧!

没错上面的add al,90H   0         0          1   ...

谢谢哈,应该是我二进制转十进制计算错了

′____gougou 发表于 2012-2-24 22:24:22

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]
查看完整版本: 关于检测点11.2的答案我有点问题