Calls, traps, and returns – Texas Instruments TMS320C3x User Manual

Page 195

Advertising
background image

Calls, Traps, and Returns

7-11

Program Flow Control

7.3

Calls, Traps, and Returns

Calls and traps provide a means of executing a subroutine or function while
providing a return to the calling routine.

The CALL, CALL

cond, and TRAPcond instructions store the value of the PC

on the stack before changing the PC’s contents. The RETS

cond or RETIcond

instructions use the value on the stack to return execution from traps and calls.
CALL is a 4-cycle instruction, while CALL

cond and TRAPcond are 5-cycle

instruction.

-

The CALL instruction places the next PC value on the stack and places
the

src (source) operand into the PC. The src is a 24-bit immediate value.

Figure 7–1 shows CALL response timing.

-

The CALL

cond instruction is similar to the CALL instruction except for two

differences:

J

It executes only if a specific condition is true (the 20 conditions—
including unconditional—are listed in Table 13–12 on page 13-30).

J

The

src is either a PC-relative displacement or is in register-addres-

sing mode.

The condition flags are set by a previous instruction only when the destination
register is one of the extended-precision registers (R0–R7) or when one of
the compare instructions (CMPF, CMPF3, CMPI, CMPI3, TSTB, or TSTB3)
is executed.

-

The TRAP

cond instruction also executes only if a specific condition is true

(same conditions as for the CALL

cond instruction). When executing, the

following actions occur:

1) Interrupts are disabled with 0 written to bit GIE of the ST.

2) The next PC value is stored on the stack.

3) The specified vector is retrieved from the trap-vector table and is loaded

into the PC. The vector address corresponds to the trap number in the
instruction.

Using the RETI

cond to return reenables interrupts by setting the bit field of

the status register.

-

RETS

cond returns execution from any of the above three instructions by

popping the top of the stack to the PC. For RETS

cond to execute, the

specified condition must be true. The conditions are the same as for the
CALL

cond instruction.

Advertising