Texas Instruments MSP50C614 Stereo System User Manual


 
Instruction Classification
4-39
Assembly Language Instructions
Table 4–30. Class 6b Instruction Description
C6b Mnemonic Description
0 IN A
n
[~],
port6
INS A
n
[~],
port6
Transfer the port’s 16 bit value to an accumulator. Port addresses 0–63
are valid. ALU status is modified.
1 OUT
port6
, A
n
[~]
OUTS
port6
, A
n
[~]
Transfer a 16 bit accumulator value to the addressed port. Port address-
es 0–63 are valid. Transfer status is modified.
4.4.7 Class 7 Instructions: Program Control
This class of instructions provides the logical program control of conditional
branches (jumps) and calls (subroutines).
Both branch and call instructions require a 32 bit instruction word. The first
word contains the opcode and condition fields and the second word contains
the destination address. The condition field can specify the true (
Not
=0) or
false (
Not
=1) condition of 22 different status conditions. The status bits that es-
tablish the conditions are latched and remain unchanged until another instruc-
tion that affects them is executed.
In addition to call, a macro-call instruction is included. This instruction is similar
to an unconditional call instruction. When executed it pushes the PC+1 value
to the STACK and loads a paged vector (7F loaded in the upper 8 bits of PC
and an 8 bit vector number loaded into the lower 8 bits of the PC). This makes
the macro–call a single word instruction that take 2 instruction cycles to
execute. This instruction is useful for referencing frequently used subroutines.
A normal RET instruction is used to return to the main program from
macro-calls.
Auxiliary register R7 (STACK) is used as the program stack pointer and is
automatically incremented on calls and macro-calls. It is automatically
decremented on returns. Interrupts are vectored in the same way as
macro-calls. The stack pointer is incremented when interrupts fire and
decremented when an IRET is executed. One side effect of the program
stack’s operation is that it is not permissible to return to a RET instruction.
Either the compiler inserts a NOP between such occurrences or the
programmer must avoid this sequence.