1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| zf ; 零标志位(zero flag) ; 功能:记录相关指令执行后,结果是否为 0 ; 若是,则 zf = 1,反之,zf = 0 ; 比如: mov ax, 1 sub ax, 1 ; 执行后,结果为 0 ,则 zf = 1
pf ; 奇偶标志位(parity flag) ; 功能:记录相关指令执行后,其结果的所有 bit 位中 1 的个数是否为偶数 ; 若 1 的个数为偶数,pf = 1,若为奇数,那么 pf = 0 ; 比如: mov ax, 1 add al, 10 ; 执行后,结果为 0000_1011B,结果有 3 个 1 ,则 pf = 0
sf ; 符号标志位(sign flag) ; 功能:记录相关指令执行后,其结果是否为负 ; 若结果为负,sf = 1;否则 sf = 0 ; 比如: mov al, 10000001B add al, 1 ; 执行后,结果为 1000_0010B,sf = 1
cf ; 进位标志位(carry flag) ; 功能:在进行无符号运算时 ; 它记录了运算结果的最高有效位向更高有效位的进位值,或从更高位的借位值 ; 若产生进位或借位,则 cf = 1,反之,cf = 0 ; 比如: mov al, 97h sub al, 98h ; 执行后,(al) = ffh,cf = 1 sub al, al ; 执行后,(al) = 0,cf = 0
of ; 标志溢出位(overflow flag) ; 功能:记录了有符号数运算的结果是否发生了溢出 ; 若发生了溢出,则 of = 1;反之,of = 0 ; 比如: mov al, 98 add al, 99 ; (al) = (al) + 99 = 98 + 99 = 197 超出 -128 ~ 127 的范围 ; 执行后将产生溢出,of = 1
df ; 方向标志位(direction flag) ; 功能:在串处理指令中,控制每次操作后 si、di 的增减 ; df = 0,每次操作后 di、si 递增 ; df = 1,每次操作后 di、si 递减
|