您的位置:首页 > 其它

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

2018-02-26 16:51 162 查看
在学习的时候发现标志位很容易搞的很乱,简直难受,特记下来这其中的注意事项
所有标志位的注意点:
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编 学习笔记