Instruction Classification

 

Table 4–30. Class 6b Instruction Description

 

 

 

 

 

C6b

Mnemonic

Description

 

 

 

 

 

0

IN An[~], port6

Transfer the port’s 16-bit value to an accumulator. Port addresses 0–63

 

 

INS An[~], port6

are valid. ALU status is modified.

 

1OUT port6, An[~] Transfer a 16-bit accumulator value to the addressed port. Port address-

OUTS port6, An[~] es 0–63 are valid. Transfer status is modified.

4.4.7Class 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.

Assembly Language Instructions

4-39

Page 125
Image 125
Texas Instruments MSP50C6xx manual Class 6b Instruction Description, Class 7 Instructions Program Control