CF标志(carry flag)

flag的第0位,进位标志位
进行无符号运算时,他记录了运算结果的最高有效位向更高位的进位值,或从更高位的错位值


对于位数为N的无符号数,二进制信息的最高位即N-1位,就是他的最高有效位,而假想存在的第N位,就是相对于最高有效位的更高位

0 0 0 1 1 1 0 0
假想的更高位 最高有效位置

比如 98h+98h的时候 将产生进位 但是这个进位值在8位数中无法保存
cpu运算时并不是丢失了这个值 而是记录在一个特殊的寄存器上
也就是flag的CF位上


mov al,98h
add al,al        ;执行后 (al) = 30h , CF = 1, CF记录了从最高有效位向更高位的进位值
add al,al        ;执行后 (al) = 60h , CF = 0, CF记录了从最高有效位向更高位的进位值(没有进位所以是0)

错位时的情况
97h-98h 将产生错位 错位后相当于 197h-98h CF可以记录这个值

mov al,97h
sub al,98h      ;执行后 (al) = ffh  CF = 1   197h - 98h = ffh  补码 11111111取反加1 00000001 
sub al,al         ;执行后 (al) = 0    CF = 0

你可能感兴趣的:(CF标志(carry flag))