Texas Instruments MSP50C6xx User Manual

Page 125

Advertising
background image

Instruction Classification

4-39

Assembly Language Instructions

Table 4–30. Class 6b Instruction Description

C6b

Mnemonic

Description

0

IN An[~], port6
INS An[~], port6

Transfer the port’s 16-bit value to an accumulator. Port addresses 0–63
are valid. ALU status is modified.

1

OUT port6, An[~]
OUTS port6, An[~]

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.

Advertising