. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
主题 : :  求检测点11.2答案  [待解决] 回复[ 14次 ]   点击[ 971次 ]  
yc2010
[帖 主] [ 发表时间:2010-06-01 16:13 ] 
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27
CF         0F       SF    ZF      PF 
sub al,al                                    1             0 
mov al,10H                                   1              10000 
add al,90H                                   1              1010 0000         
mov al,80H                                   0              1000 000 
add al,80H                                   0              1 0000 0000 
mov al,0FCH                                  1              1111 1100 
add al,05H                                  1              1 0000 0001 
mov al,7DH                                   1              111 1101 
add al,0bH                                   1              1000 1000
qingfeng203
[第13楼] [ 回复时间:2010-11-26 22:30 ] 
荣誉值:0
信誉值:0
注册日期:2008-10-18 00:34
3楼或者知道的能把下面的3个不懂之处也解释下,谢谢了。 
                  CF      OF      SF      ZF      PF  
mov al,80H       0       0       1      0       1          1000 0000   
add al,80H       1       1       0      1       1          1 0000 0000   
mov al,0FCH      1       1       0      1       1          1111 1100   
add al,05H       1       0       0      0       0          1 0000 0001   
mov al,7DH       1       0       0      0       0          111 1101   
add al,0bH       0       1       1      0       1          1000 1000 
问题1:解释 add al,80H,为什么OF=1和80H是多少? 
问题2:解释 add al,05H,为什么OF=0和0FCH是多少? 
问题3:解释 add al,0bH,为什么OF=1和7DH是多少? 
------------------ 
回复:问题1:80H,二进制下是10000000。在有符号数的情况下,首位为1,所以是用补码表示的有符号数,其绝对值可用反码+1计算出(具体见书后附注不再赘述),为-128。执行add al,80H 得al=100H,在无符号的情况下CF进位,在有符号的情况下溢出(8位有符号数的取值范围为-128~127),OF=1。 
问题2:0FCH=11111100b,有符号数的情况下为-4,无符号数的情况下为252;05h=00000101b,有符号数情况下为5,无符号数情况下为5。所以在有符号数的情况下,相加为1,不溢出,OF=0。 
问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。 
 
 这个里面的问题1中80H为负数-128,执行add al,80H,就是-128+(-128)=-256,结果是负数,怎么SF是0呢
还有问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。不管是有符号数还是无符号数,其结果都是整数,怎么SF=1呢
 请哪位解答下
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved