王爽汇编(第三版)检测点 11.2

首先补充一些知识

CF(carry flag):进位标志位   OF(overflow flag):溢出标志位   SF(sign flag):负数标志位   ZF(zero flag):零标志位    

PF(parity):奇偶标志位

CF是对无符号数进行运算,纪录的进位值或借位值

OF是对有符号数会不会产生溢出的标志 同样的SF也是对有符号数操作的。

同样一条指令,例如  add al,80H (假设原先al里的值位80H)

                            那么此时 CF=1   因为80H+80H=100H,超出al所能存储的2位16进制数了,此时al=00H

                             这里的OF等于多少呢? 它也等于 1  因为OF是对口有符号数,80H在有符号数里 = -128,-128+(-128)=-256 超出了-128~127,所以溢出了。

                            那么SF应该等于多少呢?,书中讲它是对有符号数运行等结果是否为负数,看上面结果=-256那SF=0吗?

其实不是虽然结果=-256,但是它看的是AL中的值由于AL=00H,所以应该SF=1

              下面给出11.2的表格(带答案,与主流答案有一个出入,我会特别标出来)

 CFOFSFZFPF注释
sub al,al00011 
mov al,10H00011 
add al,90H00101A0H(-96)
mov al,80H1010180H(-128)
add al,80H11011 
mov al,0FCH110110FCH(-4)
add al,05H1000005H(5)
mov al,7DH100007DH(125)
add al,0BH010010BH(11)

                                 最后的 那一条,7DH+0BH(125+11=136)明明是正数SF应该=0,但我看其他的资料SF=0,搞不懂为什么。欢迎解答

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值