DayN+1 汇编语言 标志寄存器

    技术2025-07-15  12

    特别注意******* (1)运算/逻辑指令后对标志寄存器有影响!mov不影响!!!!! (2)mul只影响CF和OF,别的未定义 (3)inc不影响CF位

    ZF (zero flag) : 值为0,则zf=1

    PF (parity flag): bit中1值的个数为偶数,则pf = 1 (*仅计算结果最低byte/8位bit中1的个数)

    SF(sign flag): 负数, sf = 1。(************默认把所有运算当为有符运算)

    CF(carry flag): 借位/进位. 当无符号运算时,产生进位或借位,则CF=1。例mov al,0x98; add al,al //mov al,97H sub al,98H (可以看成197h-98h)

    OF(overflow flag)溢出。当有符号位运算时,产生超过了该符号位能表示的,OF=1。与CF没有任何关系

    sbb/adc 借位减法/加法

    cmp的有符号比较和无符号比较。影响SF/OF/CF的情况

    ja/b/e对应无符号比较

    pushf/popf 将指令寄存器压入栈

    DF (Direction flag)。DF=1:SI/DI递减;DF=0则递增

    movsb: mov es:[di], byte ptr ds:[si]. (movsd, movsw, movsd 略) 此时若DF=0,则si+= 1, di+= 1。否则si+= -1, di+= -1;

    rep movsb = s: movsb loop s

    cld: clear direction: df=0; std:set direction: df=1;

    Processed: 0.015, SQL: 9