|
SETcc -- Byte Set on Condition
Opcode | Instruction | Clocks |
Description | Example |
0F 97 | setab r/m8 | 4/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 93 | setaeb r/m8 | 4/5 |
Set byte if above or equal (CF=0) | setaeb %dl
setaeb (%ebx,1)
setaeb m8(%ebx,1)
setaeb m8(%ebx,%ebp,1) |
0F 92 | setbb r/m8 | 4/5 |
Set byte if below (CF=1) | setbb %dl
setbb (%ebx,1)
setbb m8(%ebx,1)
setbb m8(%ebx,%ebp,1) |
0F 96 | setbeb r/m8 | 4/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 92 | setcb r/m8 | 4/5 |
Set if carry (CF=1) | setcb %dl
setcb (%ebx,1)
setcb m8(%ebx,1)
setcb m8(%ebx,%ebp,1) |
0F 94 | seteb r/m8 | 4/5 |
Set byte if equal (ZF=1) | seteb %dl
seteb (%ebx,1)
seteb m8(%ebx,1)
seteb m8(%ebx,%ebp,1) |
0F 9F | setgb r/m8 | 4/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 9D | setgeb r/m8 | 4/5 |
Set byte if greater or equal (SF=OF) | setgeb %dl
setgeb (%ebx,1)
setgeb m8(%ebx,1)
setgeb m8(%ebx,%ebp,1) |
0F 9C | setlb r/m8 | 4/5 |
Set byte if less (SF< | setlb %dl
setlb (%ebx,1)
setlb m8(%ebx,1)
setlb m8(%ebx,%ebp,1) |
0F 9E | setleb r/m8 | 4/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 96 | setnab r/m8 | 4/5 |
Set byte if not above (CF=1) | setnab %dl
setnab (%ebx,1)
setnab m8(%ebx,1)
setnab m8(%ebx,%ebp,1) |
0F 92 | setnaeb r/m8 | 4/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 93 | setnbb r/m8 | 4/5 |
Set byte if not below (CF=0) | setnbb %dl
setnbb (%ebx,1)
setnbb m8(%ebx,1)
setnbb m8(%ebx,%ebp,1) |
0F 97 | setnbeb r/m8 | 4/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 93 | setncb r/m8 | 4/5 |
Set byte if not carry (CF=0) | setncb %dl
setncb (%ebx,1)
setncb m8(%ebx,1)
setncb m8(%ebx,%ebp,1) |
0F 95 | setneb r/m8 | 4/5 |
Set byte if not equal (ZF=0) | setneb %dl
setneb (%ebx,1)
setneb m8(%ebx,1)
setneb m8(%ebx,%ebp,1) |
0F 9E | setngb r/m8 | 4/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 9C | setngeb r/m8 | 4/5 |
Set if not greater or equal (SF< | setngeb %dl
setngeb (%ebx,1)
setngeb m8(%ebx,1)
setngeb m8(%ebx,%ebp,1) |
0F 9D | setnlb r/m8 | 4/5 |
Set byte if not less (SF=OF) | setnlb %dl
setnlb (%ebx,1)
setnlb m8(%ebx,1)
setnlb m8(%ebx,%ebp,1) |
0F 9F | setnleb r/m8 | 4/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 91 | setnob r/m8 | 4/5 |
Set byte if not overflow (OF=0) | setnob %dl
setnob (%ebx,1)
setnob m8(%ebx,1)
setnob m8(%ebx,%ebp,1) |
0F 9B | setnpb r/m8 | 4/5 |
Set byte if not parity (PF=0) | setnpb %dl
setnpb (%ebx,1)
setnpb m8(%ebx,1)
setnpb m8(%ebx,%ebp,1) |
0F 99 | setnsb r/m8 | 4/5 |
Set byte if not sign (SF=0) | setnsb %dl
setnsb (%ebx,1)
setnsb m8(%ebx,1)
setnsb m8(%ebx,%ebp,1) |
0F 95 | setnzb r/m8 | 4/5 |
Set byte if not zero (ZF=0) | setnzb %dl
setnzb (%ebx,1)
setnzb m8(%ebx,1)
setnzb m8(%ebx,%ebp,1) |
0F 90 | setob r/m8 | 4/5 |
Set byte if overflow (OF=1) | setob %dl
setob (%ebx,1)
setob m8(%ebx,1)
setob m8(%ebx,%ebp,1) |
0F 9A | setpb r/m8 | 4/5 |
Set byte if parity (PF=1) | setpb %dl
setpb (%ebx,1)
setpb m8(%ebx,1)
setpb m8(%ebx,%ebp,1) |
0F 9A | setpeb r/m8 | 4/5 |
Set byte if parity even (PF=1) | setpeb %dl
setpeb (%ebx,1)
setpeb m8(%ebx,1)
setpeb m8(%ebx,%ebp,1) |
0F 9B | setpob r/m8 | 4/5 |
Set byte if parity odd (PF=0) | setpob %dl
setpob (%ebx,1)
setpob m8(%ebx,1)
setpob m8(%ebx,%ebp,1) |
0F 98 | setsb r/m8 | 4/5 |
Set byte if sign (SF=1) | setsb %dl
setsb (%ebx,1)
setsb m8(%ebx,1)
setsb m8(%ebx,%ebp,1) |
0F 94 | setzb r/m8 | 4/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]
|