标志寄存器就像是16个指示灯一样,它们是为了显示计算过程中特定的信息。
ZF标志(Zero Flag)零标志位:如果结果为0,zf=1;如果结果不为0,zf=0。
PF标志(Parity Flag)奇偶标志位:如果结果为奇数,pf=1;如果结果不为奇数,pf=0。
SF标志(Sign Flag)符号标志位:如果结果为负数,sf=1;如果结果不为负数,sf=0。
CF标志(Carry Flag)进位标志位:无符号数运算的时候,它记录运算结果的最高有效位向更高位的进位,或者借位值。
(8)←假想位(7 6 5 4 3 2 1 0)←实际位
如果有进位(或借位),则放到假想位上,这个假想位就用CF标志位来保存。
OF标志(Overflow Flag)溢出标志位:在进行有符号数运算时,如果超过了机器能表示的范围称为溢出。
计算机中有符号数与无符号数的表示:
8位 都表示数字
最高位第7位表示符号(0表示正数,1表示负数)[-128, 127] (原来-0的原码[1000 0000]表示)
adc指令:带进位的加法指令
sbb指令:带借位的减法指令
cmp指令:比较指令,功能相当于减法指令,只是不保存结果。
条件转移指令
包含两个信息:条件 转移
所有的条件转移指令的转移位移都是[-128, 127]
jcxz:检测cx中的数值,如果(cx) = 0,就修改IP,否则什么也不做。
条件转移指令(有一个大家族都是):je jne jb jnb ja jna
e:表示equal
ne:not equal
b:表示below
nb:not below
a:表示above
na:not above