| 符号位表 | |||
| 这些符号位存在一个叫做PSW(Program Status Word,程序状态字)的16位(4字节)寄存器里面。 | |||
| 符号位 | 叙述 | 典型应用 | 汇编测试 |
| OF | 溢出标志,标明一个溢出的运算。真置1,假置0。 | CPU 会根据有符号数来进行判断,如果有符号数溢出,OF置1 例如: 16位数 AX:0x858F 进行 SUB AX,0x7869 操作 后 OF就置1 ,CF位还是0,AX没有向第17位进行借位或进位。 | MOV AX,858F/ SUB AX,7869 |
| SF | 负号标志,标明结果为负数。真置1,假置0。 | int i = -100; | MOV AL,86 |
| if(i < 0) | CMP AL,0 | ||
| goto somewhere; | |||
| ZF | 零标志,标明结果为0。真置1,假置0。 | 见上cmp例子 | MOV AL,0/CMP AL,0 |
| CF | 进位标志,标明结果进位了。真置1,假置0。 | MOV EAX,0FFE6FF00 | |
| ADD EAX,208704 | |||
| AF | 辅助进位标志,记录运算时第3位(半个字节)产生的进位。 | 操作对象一半位置是否有进位或借位 | MOV AX,78FE/ADD AX,3 |
| PF | 奇偶标志,结果操作数中1的个数为偶置1(我猜是二进制下)。 | 最后一个字节操作数中1的个数为偶置1 | |
| DF | 方向标志,在串处理指令中控制信息的方向(非运算) | 0: 地址加 1:地址减 | MOV ECX,3/REP STOS DWORD PTR ES:[EDI] |
| IF | 中断标志(非运算) | (null) | |
| TF | 陷井标志(非运算) | (null) | |
原文:http://www.cnblogs.com/killad/p/7044670.html