本节内容 JCC 视频提供:昆山爱达人信息技术有限公司 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866
昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 1、标志寄存器:EFLAGS
若算术操作产生的结果在最高有效位(most-significant bit)发生进位或借位则将其置1,反之清零。 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 2、CF (bit 0) [Carry flag] 若算术操作产生的结果在最高有效位(most-significant bit)发生进位或借位则将其置1,反之清零。 这个标志通常用来指示无符号整型运算的溢出状态。 例: MOV AL,0xFE MOV AL,0x7F ADD AL,2 或者 SUB AL,0xFF
3、PF(bit 2) [Parity flag] 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 3、PF(bit 2) [Parity flag] 如果结果的最低有效字节(least-significant byte)包含偶数个1位则该位置1,否则清零。 利用PF可进行奇偶校验检查: 需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误 例子: MOV AL,0CE ADD AL,0
4、AF(bit 4) [Adjust flag] 如果算术操作在结果的第3位发生进位或借位则将该标志置1,否则清零。 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 4、AF(bit 4) [Adjust flag] 如果算术操作在结果的第3位发生进位或借位则将该标志置1,否则清零。 这个标志在BCD(binary-code decimal)算术运算中被使用。
经常与CMP或者TEST等指令一起使用: 例1:判断2个值是否相等 MOV EAX,100 MOV ECX,100 CMP EAX,ECX 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 5、ZF(bit 6) [Zero flag] 若结果为0则将其置1,反之清零。 经常与CMP或者TEST等指令一起使用: 例1:判断2个值是否相等 MOV EAX,100 MOV ECX,100 CMP EAX,ECX (CMP 指令相当于SUB指令,但是相减的结果并不保存到第一个操作数中) 例2:判断某个值是否为0 TEST EAX,EAX (TEST指令相当于AND指令,但是与的结果并不保存到第一个操作数中)
6、SF(bit 7) [Sign flag] 该标志被设置为有符号整型的最高有效位。 (0指示结果为正,反之则为负) 例子: 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 6、SF(bit 7) [Sign flag] 该标志被设置为有符号整型的最高有效位。 (0指示结果为正,反之则为负) 例子: MOV AL,0x7F MOV AL,0xFE ADD AL,2 ADD AL,2
7、OF(bit 11) [Overflow flag] 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。 可以这样理解: 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 7、OF(bit 11) [Overflow flag] 溢出标志OF用于反映有符号数加减运算所得结果是否溢出。 可以这样理解: 如果是无符号数运算,是否溢出看CF位。 如果是有符号数运算,是否溢出看OF位。 例子: MOV AL,0x7F ADD AL,2
8、DF(bit 10) [Direction Flag] 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 8、DF(bit 10) [Direction Flag] 这个方向标志控制串指令(MOVS, CMPS, SCAS, LODS以及STOS)。设置DF标志使得串指令自动递减(从高地址向低地址方向处理字符串),清除该标志则使得串指令自动递增。 STD以及CLD指令分别用于设置以及清除DF标志。
昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 9、JCC指令 参考<JCC指令>
<汇编、C/C++线上班>学员可见 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 课后练习: <汇编、C/C++线上班>学员可见