Introduction
4-2
4.1 Introduction
In this chapter each MSP50P614/MSP50C614 class of instructions is
explained in detail with examples and restrictions. Most instructions can
individually address bits, bytes, words or strings of words or bytes. Usable
program memory is 30K by 17-bit wide and the entire 17-bits are used for
instruction set encoding. The execution of programs can only be executed
from internal program memory. Usable program memory starts from location
800h. The data memory is 640 by 17-bits of static RAM, 16 bits of which are
an arithmetic value. The 17th bit is used for flags or tags.
4.2 System Registers
A functional description of each system register is described below.
4.2.1 Multiplier Register (MR)
The multiplier uses this 16-bit register to multiply with the multiplicand. MOV
instructions are used to load the MR register. The multiplicand is usually the
operand of the multiply instructions. All multiply, multiply-accumulate
instructions, and filter instructions (FIR, FIRK, COR and CORK) use the MR
register (see Section 4.11 for detail).
4.2.2 Shift Value Register (SV)
The shift value register is 4-bits wide. For barrel shift instructions, the multiplier
operand decodes a 4-bit value in the shift value register (SV) to a 16-bit value.
For example, a value of 7H in the SV register is decoded to a multiplier operand
of 0000000010000000 binary. In effect, this causes a left shift of 7 bits to in the
final 32-bit product. In other words, a nonzero value, say k (0 ≤ k ≤ 15), in the
SV register means padding k number of zeros to the right of the final result.
4.2.3 Data Pointer Register (DP)
The data pointer register (DP) is a 16-bit register that is used to point to a
program memory location for various look up table instructions. DP is not
directly loaded by the user, It is loaded during the execution of lookup
instructions overwriting the previous content of the DP register. Lookup
instructions are described in detail in Section 4.9. The DP register auto-
increments the next logical program memory location after the execution of a
lookup instruction. In addition to lookup instructions, the filter instructions FIRK
and CORK (see Section 4.11 for detail) use the DP pointer to look up filter
coefficients. It may be required to context save and restore the DP in interrupt
service routines.
4.2.4 Program Counter (PC)
The program counter (PC) holds the program memory location to be used for
the next instruction’s execution. It increments (by 1 for single word instructions