寄存器各flag理解

第0位 CF(carry flag):记录有无进位,主要是记录超过寄存器字长的虚拟一位,当虚拟位是1的话,CF = 1;虚拟位为0的的话,CF = 0;这里有一个问题我郁闷了两天翻《计组》中的运算才搞明白,虽然机器码都是二进制码,但是存储的方式是补码,负数补码是2^(n+1) + x,【n:整数位数, x:真值】所以说位数比单纯的取反加1多一位,所以计算得出的虚拟为可以是1,给无符号数使用

第2位 PF(parity flag):记录机器码的1个数,个数为偶数,PF = 1;个数为奇数,Pf = 0;
第4位 AF
第6位 ZF(zero flag):当机器码全为0时, ZF = 0;不全为0是,ZF = 1;
第7位 SF(sign flag):记录最高位的值,当最高位为1时,SF = 1;最高位为0是,SF = 0;给有符号数使用
第8位 TF(trap flag):cpu单步执行, TF = 1;
第9位 IF(interrup flag):记录可屏蔽外中断是否立即处理, IF = 0,屏蔽外中断, 命令cli;IF = 1,处理外中断, 命令sti;
第10位 DF(direction flag):记录串移动的方向,ip = ip + i,命令std, DF = 1;ip = ip - i, 命令cld, DF = 0;
第11位 OF(overflow flag):记录有无溢出,只有当两个最高位同号时,才有可能,当结果与运算数异号,OF = 1;主要是给有符号数使用
 

转载于:https://www.cnblogs.com/rz-jin/archive/2012/12/13/2816376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值