Tutorial 3: Assembly Code with MC68332
This tutorial and associated laboratory will show you
how to write assembly code for the MC68332 CPU. It is suggested that you
also look at a detailed
explaination of the MC68332 from Motorola. (Note: After following
the link, click 'Controller' -> 'Hardware' -> 'Data
Sheets')
Introduction
Motorola introduced the MC6600 microprocessor in 1974. It was an
8-bit microprocessor designed for personal computers and specialized
products requiring microprocessor control. In the years that followed,
Motorola and other manufacturers introduced 16-bit and 32-bit
microprocessors and also began combining other capabilities (like
memory, timing circuits, and I/O circuitry) to create an integrated
circuit chip called a microcontroller. The microcontroller
contained in the Eyebot is the Motorola MC68332 microcontroller, which
was first released in 1989. This microcontroller is what we will be
using for this embedded systems course. Some typical applications for
the MC68332 are
- Automotive (antiskid braking, fuel injection and ignition
control, electronic instrumentation panel, and ride control)
- Data Acquisistion and Control (real-time control systems,
industrial process control)
- Scientific Instruments (oscilloscopes, spectrum analyzers)
- Consumer Products (printers, copiers, cameras, appliances)
Motorola MC68332 Microcontroller Unit
(MCU)
The emphasis for a MCU is rapid response to external
events such as interrupt requests. The core of the MCU is the MC68332
CPU, which will be refered to as the CPU32 for the rest of the tutorial.
As with many microprocessors, the circuit-level operation of the CPU32
is controlled by a microprogrammed sequence of instructions stored in
ROM. The machine-language instructions from external memory are fetched
and decoded, causing the execution of the microprograms. The
microprograms are stored in the ROM during the chip manufacture and
cannot be modified by the programmer.
The CPU32, with its pipeline and highly parallel
internal architecture, is capable of executing a new instruction every
two clock cycles if the instructions reside in the on-chip
memory.