【学习笔记】汇编:关于几个标志位的注意点

在学习的时候发现标志位很容易搞的很乱,简直难受,特记下来这其中的注意事项

所有标志位的注意点:

1、所有的标志位只有在运算的时候才会发生改变,即MOV PUSH POP等移动指令都不影响标志位

2、所有标志位的改变都是根据运算的位数来计算的,使用8位寄存器时只看8位寄存器结果,使用16位寄存器时只看16位寄存器结果

CF Carry Flag 进位标志符,这个是最简单的:

1、CF是进行无符号数运算,即00H ADD 80H会被当作 0+128

2、CF只要在运算时发生进位,即FF加到00或者 00减到FF都会使CF为1

3、CF为1时显示为CY(Carry Yes)为0时显示为NC(Not Carry)

SF Sign Flag 符合标志符

1、符号标志符把运算结果作符号数运算,把7FH看作 127 把 80H看作 -128

2、SF只要二进制的首位为1,则为1,首位为0则为0

3、SF为1时显示为NG(Negative),为0时显示为PL(Postive)

ZF Zero Flag标志位

1、ZF不分是符号数还是无符号数

2、ZF只要计算结果为0,就为1

3、ZF为1时显示为ZR(Zero),为0时显示为NZ(Not Zero)

PF Parity Flag 奇偶标志位

1、PF并不是计算数学意义上的奇偶性,如08H并不能看作是偶数

2、PF是计算二进制中1的个数的奇偶性,如08H的二进制为 0000 1000B,1的个数为1,所以为奇数,PF为0

3、PF为1时(偶数)显示为PE(Parity Even),PF为0时(奇数)显示为PO(Parity ODD)

OF OverFlow Flag 溢出标志位 (尤其注意)

1、OF判断的是符号数的计算,注意 80H ADD 80H时并不是从80H加到0而是 -127 - 127 结果溢出

2、OF只要从正数加到负数,或者是负数减到正数时就为1,其余结果为0

3、OF为1时显示为OV(OverFlow),OF为0时,显示为NV(Not OverFlow)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值