AngoLinux

80386 Programmer's Reference Manual -- Opcode SETcc


SETcc -- Byte Set on Condition

OpcodeInstructionClocks DescriptionExample
0F 97setab r/m84/5 Set byte if above (CF=0 and ZF=0)setab %dl
setab (%ebx,1)
setab m8(%ebx,1)
setab m8(%ebx,%ebp,1)
0F 93setaeb r/m84/5 Set byte if above or equal (CF=0)setaeb %dl
setaeb (%ebx,1)
setaeb m8(%ebx,1)
setaeb m8(%ebx,%ebp,1)
0F 92setbb r/m84/5 Set byte if below (CF=1)setbb %dl
setbb (%ebx,1)
setbb m8(%ebx,1)
setbb m8(%ebx,%ebp,1)
0F 96setbeb r/m84/5 Set byte if below or equal (CF=1 or (ZF=1)setbeb %dl
setbeb (%ebx,1)
setbeb m8(%ebx,1)
setbeb m8(%ebx,%ebp,1)
0F 92setcb r/m84/5 Set if carry (CF=1)setcb %dl
setcb (%ebx,1)
setcb m8(%ebx,1)
setcb m8(%ebx,%ebp,1)
0F 94seteb r/m84/5 Set byte if equal (ZF=1)seteb %dl
seteb (%ebx,1)
seteb m8(%ebx,1)
seteb m8(%ebx,%ebp,1)
0F 9Fsetgb r/m84/5 Set byte if greater (ZF=0 or SF=OF)setgb %dl
setgb (%ebx,1)
setgb m8(%ebx,1)
setgb m8(%ebx,%ebp,1)
0F 9Dsetgeb r/m84/5 Set byte if greater or equal (SF=OF)setgeb %dl
setgeb (%ebx,1)
setgeb m8(%ebx,1)
setgeb m8(%ebx,%ebp,1)
0F 9Csetlb r/m84/5 Set byte if less (SF<setlb %dl
setlb (%ebx,1)
setlb m8(%ebx,1)
setlb m8(%ebx,%ebp,1)
0F 9Esetleb r/m84/5 Set byte if less or equal (ZF=1 and SF<setleb %dl
setleb (%ebx,1)
setleb m8(%ebx,1)
setleb m8(%ebx,%ebp,1)
0F 96setnab r/m84/5 Set byte if not above (CF=1)setnab %dl
setnab (%ebx,1)
setnab m8(%ebx,1)
setnab m8(%ebx,%ebp,1)
0F 92setnaeb r/m84/5 Set byte if not above or equal (CF=1)setnaeb %dl
setnaeb (%ebx,1)
setnaeb m8(%ebx,1)
setnaeb m8(%ebx,%ebp,1)
0F 93setnbb r/m84/5 Set byte if not below (CF=0)setnbb %dl
setnbb (%ebx,1)
setnbb m8(%ebx,1)
setnbb m8(%ebx,%ebp,1)
0F 97setnbeb r/m84/5 Set byte if not below or equal (CF=0 and ZF=0)setnbeb %dl
setnbeb (%ebx,1)
setnbeb m8(%ebx,1)
setnbeb m8(%ebx,%ebp,1)
0F 93setncb r/m84/5 Set byte if not carry (CF=0)setncb %dl
setncb (%ebx,1)
setncb m8(%ebx,1)
setncb m8(%ebx,%ebp,1)
0F 95setneb r/m84/5 Set byte if not equal (ZF=0)setneb %dl
setneb (%ebx,1)
setneb m8(%ebx,1)
setneb m8(%ebx,%ebp,1)
0F 9Esetngb r/m84/5 Set byte if not greater (ZF=1 or SF<setngb %dl
setngb (%ebx,1)
setngb m8(%ebx,1)
setngb m8(%ebx,%ebp,1)
0F 9Csetngeb r/m84/5 Set if not greater or equal (SF<setngeb %dl
setngeb (%ebx,1)
setngeb m8(%ebx,1)
setngeb m8(%ebx,%ebp,1)
0F 9Dsetnlb r/m84/5 Set byte if not less (SF=OF)setnlb %dl
setnlb (%ebx,1)
setnlb m8(%ebx,1)
setnlb m8(%ebx,%ebp,1)
0F 9Fsetnleb r/m84/5 Set byte if not less or equal (ZF=1 and SF<setnleb %dl
setnleb (%ebx,1)
setnleb m8(%ebx,1)
setnleb m8(%ebx,%ebp,1)
0F 91setnob r/m84/5 Set byte if not overflow (OF=0)setnob %dl
setnob (%ebx,1)
setnob m8(%ebx,1)
setnob m8(%ebx,%ebp,1)
0F 9Bsetnpb r/m84/5 Set byte if not parity (PF=0)setnpb %dl
setnpb (%ebx,1)
setnpb m8(%ebx,1)
setnpb m8(%ebx,%ebp,1)
0F 99setnsb r/m84/5 Set byte if not sign (SF=0)setnsb %dl
setnsb (%ebx,1)
setnsb m8(%ebx,1)
setnsb m8(%ebx,%ebp,1)
0F 95setnzb r/m84/5 Set byte if not zero (ZF=0)setnzb %dl
setnzb (%ebx,1)
setnzb m8(%ebx,1)
setnzb m8(%ebx,%ebp,1)
0F 90setob r/m84/5 Set byte if overflow (OF=1)setob %dl
setob (%ebx,1)
setob m8(%ebx,1)
setob m8(%ebx,%ebp,1)
0F 9Asetpb r/m84/5 Set byte if parity (PF=1)setpb %dl
setpb (%ebx,1)
setpb m8(%ebx,1)
setpb m8(%ebx,%ebp,1)
0F 9Asetpeb r/m84/5 Set byte if parity even (PF=1)setpeb %dl
setpeb (%ebx,1)
setpeb m8(%ebx,1)
setpeb m8(%ebx,%ebp,1)
0F 9Bsetpob r/m84/5 Set byte if parity odd (PF=0)setpob %dl
setpob (%ebx,1)
setpob m8(%ebx,1)
setpob m8(%ebx,%ebp,1)
0F 98setsb r/m84/5 Set byte if sign (SF=1)setsb %dl
setsb (%ebx,1)
setsb m8(%ebx,1)
setsb m8(%ebx,%ebp,1)
0F 94setzb r/m84/5 Set byte if zero (ZF=1)setzb %dl
setzb (%ebx,1)
setzb m8(%ebx,1)
setzb m8(%ebx,%ebp,1)

Operation




IF condition THEN r/m8 := 1 ELSE r/m8 := 0; FI;

Description

SETcc stores a byte at the destination specified by the effective address or register if the condition is met, or a 0 byte if the condition is not met.

Flags Affected

None

Protected Mode Exceptions

#GP(0) if the result is in a non-writable segment; #GP(0) for an illegal memory operand effective address in the CS, DS, ES, FS, or GS segments; #SS(0) for an illegal address in the SS segment; #PF(fault-code) for a page fault

Real Address Mode Exceptions

Interrupt 13 if any part of the operand would lie outside of the effective address space from 0 to 0FFFFH

Virtual 8086 Mode Exceptions

Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault


[Home Page dell'ITIS "Fermi"] [80386 Programmer's Reference Manual Index] [Previous] [Next]