MC68332 Machine Language
The machine language instructions for the CPU32 consist of one or
more 16-bit words in memory. The first word is the operation word,
which contains the operation code (op-code) as well as the size or
length and the addressing modes for any operands, if necessary. For
most instructions, the op-code is contained in bits 12 through 15 of
the first word. The various combinations of these bits yield 16
op-codes shown in the table below.
|
Bits 15 - 12 |
Operation |
|
0000 |
Bit
Manipulation / MOVEP / Immediate |
|
0001 |
Move
Byte |
|
0010 |
Move
Long |
|
0011 |
Move
Word |
|
0100 |
Miscellaneous |
|
0101 |
ADDQ /
SUBQ / Scc / DBcc / TRAPcc |
|
0110 |
Bcc /
BSR / BRA |
|
0111 |
MOVEQ |
|
1000 |
OR /
DIV / SBCD |
|
1001 |
SUB /
SUBX |
|
1010 |
(Unassigned,
Reserved) |
|
1011 |
CMP /
EOR |
|
1100 |
AND /
MUL / ABCD / EXG |
|
1101 |
ADD /
ADDX |
|
1110 |
Shift
/ Rotate / Bit Field |
|
1111 |
Coprocessor Operation
|
An important difference betweeen the CPU designed for laboratories
one and two and the CPU32 is that the programmer does use the op-codes
to program the CPU. The op-codes are stored as microcode in the ROM of
the CPU32 and a special program, called an assembler, converts
code that the programmer writes (assembly instructions) to sequences
of microcode.
Note: The information about the MC68332 was taken from 'The
Motorola MC68332 Microcontroller - Product Design, Assembly Language
Programming, and Interfacing' by Thomas L. Harman, 1991.
MC68332 Register Set
The MC68332 has the following general purpose registers:
- Program counter - holds the address of next instruction to be
fetched from memory.
- Condition code register - contains bits that indicate the
results of arithmetic or similar operations.
- Eight (8) data registers
- Seven (7) address registers
The following diagram, from the CPU32 data sheet, illustrates the
arrangement of the registers.
