注册 登录
编程论坛 汇编论坛

当CF位或OF位为"1"时

醉罪 发布于 2010-01-16 21:15, 908 次点击
当CF位或OF位为"1"时
 PF和SF怎么判定啊  PF要算上CF(或OF)位的那个1么?
SF是看最高位 还是看CF位?或是OF位呢?
4 回复
#2
zj332010-01-17 20:58
pf是看所有位为1的个数,为偶数pf为1, 否则为0
sf看最高位,最高位为1,sf为1,最高位为0,sf为0
#3
zj332010-01-17 20:58
pf是看所有位为1的个数,为偶数pf为1, 否则为0
sf看最高位,最高位为1,sf为1,最高位为0,sf为0
#4
醉罪2010-01-17 23:42
所有位包括进位么?
最高位?进位算不算?
#5
zj332010-01-18 21:40
pf和sf的判定跟cf和of没有关系。
例如,mov al, 10111101b    add al, 10b
上述语句折行后,al = 10111111b, al一共有7个1,所以pf为0, 如果al有偶数个1,则pf为1.
al的最高位(10111111b),也就是第七位,(一个字节为0到7位)是1, 所以sf为1,如果最高位为0,sf为0.其实sf为1,如果把数据看成是有符号数,该数是负数,sf为0,该数是正数。
cf是判断无符号数运算是否溢出。of是判断有符号数运算是否溢出。
找一本汇编的书,看一下,再用debug多多调试,很快就会清楚了。
1