Concise Atari ST 68000 Programmer's Reference Guide

MC68000 instruction codes

The Motorola MC68000 series of microprocessors rationalize instruction code allocation by segmenting the 16-bit Operation Word into five smaller blocks, each of which has a fairly consistent meaning.

Operation word instruction

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Type dreg dmod smod sreg

Instruction Word Parsing Analysis Type

The types 0 to 15 instruction codes (16 classes) are allocated as follows:

15 14 13 12  
Type Instructions Range
0 Bit manipulation, Move Peripheral and Immediate instructions
1 Move byte Instructions
2 Move longword instructions
3 Move word instructions
4 Miscellaneous instructions
5 Add Quick, Subtract Quick, Set conditionally and Decrement instructions
6 Branch conditionally instructions
7 Move Quick instructions
8 Or, Divide and Subtract decimal instrs.
9 Subtract, Subtract extended instrs.
10 Unassigned
11 Compare, Exclusive Or instructions
12 And, Multiply, Add decimal and Exchange instructions
13 Add, Add extended instructions
14 Shift and Rotate instructions
15 Unassigned

Dreg

11 10 9
dreg

Dreg has three main uses, normally holding the destination address in the general move instruction, one of the two register numbers for use in the specified instruction or embedded data for use in the add and subtract quick instructions.

Dreg only refers to a register in those instances where the instruction has two register operands.


Dmod

8 7 6
dreg

Dmod has two main uses, specifying the effective address mode of the destination operand in the general move instruction or, in most other cases it defines the size of the operation to be performed.


Smod

5 4 3
smod

Smod usually defines the effective address mode of the instruction, the source operand for the move instruction.


Sreg

2 1 0
sreg

Sreg defines the effective address register, usually the source.