本文主要是介绍EFLAGS(EFL)标志寄存器与JCC指令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、
CF(bit 0)[Carry Flag]:若算术操作产生的结果在最高有效位(most-significant bit)发生进位或错位则将其置为1,反之清零。
这个标志通常用来指示无符号整形运算的溢出状态。
如果是无符号数运算,是否溢出看CF位。
如果是有符号数运算,是否溢出看OF位。
二、
PF(bit 2)[Parity Flag]:如果结果的最低有效字节(least-significant byte)包含偶数个1位,则将其置为1,反之清零。
利用PF可进行奇偶校验检查
三、AF(bit 4)[Auxiliary Carry Flag]:白皮书:Adjust Flag -- Set if an arithmetic operation genertates a carry or a borrow out of bit 3 of the result ;cleared otherwise .This flag is used in binary-code decimal (BCD)arithmetic.
如果算术操作在结果中的第3位,发生进位或错位,则将该位置置1,否则清零。
这个标志在BCD(binary-code decimal)算术运算中使用。
四、
ZF(bit 6)[Zero Flag]:零标志ZF用来反映运算结果是否为0。
如果运算结果为0,则将其置1,反之清零。
五、
SF(bit 7)[Sign Flag]:符号标志SF,用来反映运算结果的符号位,它与运算结果的最高位相同。
该标志给设置为有符号整形的最高有效位(0指示结果为正,反之为负)。
六、
OF(bit 11)[Overflow Flag]:溢出标志OF用于有符号数加减运算,所得结果是否溢出。
如果是无符号数运算,是否溢出看CF位。
如果是有符号数运算,是否溢出看OF位。
七、
DF(bit 10)[Direction Flag]:这个方向标志控制串指令(MOVS,CMPS,SCAS,LODS以及STOS).设置DF标志使得串指令自动递减(从高地址向低地址方向处理字符串),清除该标志则使得串指令自动递增。
STD以及CLD指令分别用于设置以及清除DF标志。
这篇关于EFLAGS(EFL)标志寄存器与JCC指令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!