MC68HC916X1
MC68HC916X1TS/D
MOTOROLA
51
4 Central Processing Unit
The CPU16 is a true 16-bit, high-speed device. It was designed to give M68HC11 users a path to
higher performance while maintaining maximum compatibility with existing systems.
4.1 Overview
Ease of programming is an important consideration when using a microcontroller. The CPU16 in-
struction set is optimized for high performance. There are two 16-bit general-purpose accumulators
and three 16-bit index registers. The CPU16 supports 8-bit (byte), 16-bit (word), and 32-bit (long-
word) load and store operations, as well as 16- and 32-bit signed fractional operations. Code de-
velopment is simplified by the background debugging mode.
CPU16 memory space includes a one Mbyte data space and a one Mbyte program space. Twenty-
bit addressing and transparent bank switching are used to implement extended memory. In addi-
tion, most instructions automatically handle bank boundaries.
The CPU16 includes instructions and hardware to implement control-oriented digital signal pro-
cessing functions with a minimum of interfacing. A multiply and accumulate unit provides the capa-
bility to multiply signed 16-bit fractional numbers and store the resulting 32-bit fixed point product
in a 36-bit accumulator. Modulo addressing supports finite impulse response filters.
Use of high-level languages is increasing as controller applications become more complex and con-
trol programs become larger. These languages make rapid development of portable software pos-
sible. The CPU16 instruction set supports high-level languages.
4.2 M68HC11 Compatibility
CPU16 architecture is a superset of M68HC11 CPU architecture. All M68HC11 CPU resources are
available in the CPU16. M68HC11 CPU instructions are either directly implemented in the CPU16,
or have been replaced by instructions with an equivalent form. The instruction sets are source code
compatible, but some instructions are executed differently in the CPU16. These instructions are
mainly related to interrupt and exception processing — M68HC11 CPU code that processes inter-
rupts, handles stack frames, or manipulates the condition code register must be rewritten.
CPU16 execution times and number of cycles for all instructions are different from those of the
M68HC11 CPU. As a result, cycle-related delays and timed control routines may be affected.
The CPU16 also has several new or enhanced addressing modes. M68HC11 CPU direct mode ad-
dressing has been replaced by a special form of indexed addressing that uses the new IZ register
and a reset vector to provide greater flexibility.