Mnemonic | Description | Operands | Data Size | Condition Codes | ||||||
---|---|---|---|---|---|---|---|---|---|---|
X | N | Z | V | C | ||||||
ABCD | add BCD with extend | Dx, Dy -(Ax), -(Ay) |
B | * | U | * | U | * | ||
ADD | add binary | Dn,<ea> <ea>,Dn |
B | W | L | * | * | * | * | * |
ADDA | add binary to An | <ea>, An | W | L | ||||||
ADDI | add immediate | #x, An | B | W | L | * | * | * | * | * |
ADDQ | add 3-byte immediate | #<1-8>,<ea> | B | W | L | * | * | * | * | * |
ADDX | add extended | Dy, Dx -(Ay), -(Ax) |
B | W | L | * | * | * | * | * |
AND | bit-wise and | <ea>, Dn Dn, <ea> |
B | W | L | * | * | 0 | 0 | |
ANDI | bit wise and with immediate | #<data>, <ea> | B | W | L | * | * | 0 | 0 | |
ASL | arithmetic shift left | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | * | * | * |
ASR | arithmetic shift right | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | * | * | * |
Bcc | conditional branch | Bcc.S <label> Bcc.W <label> |
B | W | ||||||
BCHG | test a bit and change | Dn, <ea> #<data>, <ea> |
B | L | * | |||||
BCLR | test a bit and clear | Dn, <ea> #<data>, <ea> |
B | L | * | |||||
BSET | test a bit and set | Dn, <ea> #<data>, <ea> |
B | L | * | |||||
BSR | branch to subroutine | BSR.S <label> BSR.W <label> |
B | W | ||||||
BTST | bit test | Dn, <ea> #<data>, <ea> |
B | L | * | |||||
CHK | check Dn against bounds | <ea>, Dn | W | * | U | U | U | |||
CLR | clear | <ea> | B | W | L | 0 | 1 | 0 | 0 | |
CMP | compare | <ea>, Dn | B | W | L | * | * | * | * | |
CMPA | compare address | <ea>, An | W | L | * | * | * | * | ||
CMPI | compare immediate | #<data>, <ea> | B | W | L | * | * | * | * | |
CMPM | compare memory | (Ax)+, (Ay)+ | B | W | L | * | * | * | * | |
DBcc | looping instruction | DBcc Dn, <label> | W | |||||||
DIVS | divide signed | <ea>, Dn | W | * | * | * | 0 | |||
DIVU | divide unsigned | <ea>, Dn | W | * | * | * | 0 | |||
EOR | exclusive OR | Dn, <ea> | B | W | L | * | * | 0 | 0 | |
EORI | exclusive OR immediate | #<data>, <ea> | B | W | L | * | * | 0 | 0 | |
EXG | exchange any two registers | Rx, Ry | L | |||||||
EXT | sign extended | Dn | W | L | * | * | 0 | 0 | ||
ILLEGAL | raise illegal instruction exception | |||||||||
JMP | jump to effective address | <ea> | ||||||||
JSR | jump to subroutine | <ea> | ||||||||
LEA | load effective address | <ea>, An | L | |||||||
LINK | allocate stack frame | An, #<displacement> | ||||||||
LSL | logical shift left | Dx, Dy #<1-8>, Dy <ea> |
B | W | L | * | * | * | 0 | * |
LSR | logical shift right | Dx, Dy #<1-8>, Dy <ea> |
B | W | L | * | * | * | 0 | * |
MOVE | between effective address | <ea>, <ea> | B | W | L | * | * | 0 | 0 | |
MOVE | to CCR | <ea>, CCR | W | I | I | I | I | I | ||
MOVE | to CCR | SR, <ea> | W | I | I | I | I | I | ||
MOVE | from SR | <ea>, SR | W | |||||||
MOVE | USP to/from address register | USP, An An, USP |
L | |||||||
MOVEA | move address | <ea>, An | W | L | ||||||
MOVEM | move multiple | <reg list>,
<ea> <ea>, <reg list> |
W | L | ||||||
MOVEP | move peripheral | Dn, x(An) x(An), Dn |
W | L | ||||||
MOVEQ | move 8-bit immediate | #<-128,+127>, Dn | L | * | * | 0 | 0 | |||
MULS | multiply signed | <ea>, Dn | W | * | * | 0 | 0 | |||
MULU | multiply unsigned | <ea>, Dn | W | * | * | 0 | 0 | |||
NBCD | negate BCD | <ea> | B | * | U | * | U | * | ||
NEG | negate | <ea> | B | W | L | * | * | * | * | * |
NEGX | negate with extend | <ea> | B | W | L | * | * | * | * | * |
NOP | no operation | |||||||||
NOT | form one's complement | <ea> | B | W | L | * | * | 0 | 0 | |
OR | bit-wise or | <ea>, Dn Dn, <ea> |
B | W | L | * | * | 0 | 0 | |
ORI | bit-wiese or with immediate | #<data>, <ea> | B | W | L | * | * | 0 | 0 | |
PEA | push effective address | <ea> | L | |||||||
RESET | reset all external devices | |||||||||
ROL | rotate left | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | 0 | * | |
ROR | rotate right | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | 0 | * | |
ROXL | rotate left with extend | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | * | 0 | * |
ROXR | rotate right with extend | #<1-8>, Dy Dx, Dy <ea> |
B | W | L | * | * | * | 0 | * |
RTE | return from exception | I | I | I | I | I | ||||
RTR | return and restore | I | I | I | I | I | ||||
RTS | return from subroutine | |||||||||
SBCD | subtract BCD with extend | Dx, Dy -(Ax), -(Ay) |
B | * | U | * | U | * | ||
Scc | set to -1 if true, else 0 | <ea> | B | |||||||
STOP | enable and wait for interrupts | #<data> | I | I | I | I | I | |||
SUB | subtract binary | Dn, <ea> <ea>, Dn |
B | W | L | * | * | * | * | * |
SUBA | subtract binary from address | <ea>, An | W | L | ||||||
SUBI | subtract immediate | #x, <ea> | B | W | L | * | * | * | * | * |
SUBQ | subtract 3-bit immediate | #<1-8>, <ea> | B | W | L | * | * | * | * | * |
SUBX | subtract extended | Dy, Dx -(Ay), -(Ax) |
B | W | L | * | * | * | * | * |
SWAP | swap words of Dn | Dn | W | * | * | 0 | 0 | |||
TAS | test and set MSB & set N/Z bits | <ea> | B | * | * | 0 | 0 | |||
TRAP | execute trap exception | #<vector> | ||||||||
TRAPV | trapv exception with V bit set | |||||||||
TST | test for negative or zero | <ea> | B | W | L | * | * | 0 | 0 | |
UNLK | deallocate stack frame | An |
Symbol | Meaning |
---|---|
<blank> | set accordingly to result of operation |
* | not affected |
0 | cleared |
1 | set |
U | outcome (state after operation) undefined |
I | set by immediate data |
<ea> | effective address operand |
<data> | immediate data |
<label> | assember label |
<vector> | TRAP instruction exception vector (0-15) |
<reg lst> | MOVEM instruction register specification list |
<displacement> | LINK instruction negative displacement |
|
|
Condition Codes for Bcc, DBcc and Scc Instructions.
Condition
Codes set after CMP D0, D1 Instruction.
Realationship | Unsigned | Signed |
---|---|---|
D1 < D0 | CS carry bit set | LT les than |
D1 <= D0 | LS lower or same | LE less or equal |
D1 == D0 | EQ equal (Z-bit set) | EQ equal (Z-bit set) |
D1 != D0 | NE not equal (Z-bit cleared) | NE not equal (Z-bit cleared) |
D1 > D0 | HI higher than | GT greater than |
D1 >= D0 | CC carry bit clear | GE greater than or equal |
PL plus (N-bit cleared) | MI minus (N-bit set) | |
VC V-bit cleared (no overflow) | VS V-bit set (overflow) | |
RA branch always | ||
DBcc only | F never terminate (DBRA is an alternate to DBF) | |
T always terminate | ||
ST always set | ||
SF never set |