All instructions are conditionally executed. If the condition in the top four bits of the instruction is not met, then even illegal instructions will have no effect...
Condition field Execute IF
0000 EQ : Z (equal)
0001 NE : ~Z (not equal)
0010 CS : C (unsigned higher or same)
0011 CC : ~C (unsigned lower)
0100 MI : N (negative)
0101 PL : ~N (positive or zero)
0110 VS : V (overflow)
0111 VC : ~V (no overflow)
1000 HI : C and ~Z (unsigned higher)
1001 LS : ~C or Z (unsigned lower or same)
1010 GE : N = V (signed higher or same)
1011 LT : N <> V (signed lower)
1100 GT : ~Z and (N = V) (signed higher)
1101 LE : Z or (N <> V) (signed lower or same)
1110 AL : 1 (always)
1111 NV : 0 (never)
( 1 is true, 0 is false, ~ is NOT )
Note: The NV code shouldn't be used anymore. If you want a no-op, you should use something like MOV R0,R0
|
|
|