Texas Instruments MSP430x4xx User Manual

Page 63

Advertising
background image

Instruction Set

3-29

RISC 16−Bit CPU

CALL

Subroutine

Syntax

CALL

dst

Operation

dst

−> tmp

dst is evaluated and stored

SP − 2

−> SP

PC

−> @SP

PC updated to TOS

tmp

−> PC

dst saved to PC

Description

A subroutine call is made to an address anywhere in the 64K address space.
All addressing modes can be used. The return address (the address of the
following instruction) is stored on the stack. The call instruction is a word
instruction.

Status Bits

Status bits are not affected.

Example

Examples for all addressing modes are given.

CALL

#EXEC

; Call on label EXEC or immediate address (e.g. #0A4h)
; SP−2

SP, PC+2

@SP, @PC+

PC

CALL

EXEC

; Call on the address contained in EXEC
; SP−2

SP, PC+2

@SP, X(PC)

PC

; Indirect address

CALL

&EXEC

; Call on the address contained in absolute address
; EXEC
; SP−2

SP, PC+2

@SP, X(0)

PC

; Indirect address

CALL

R5

; Call on the address contained in R5
; SP−2

SP, PC+2

@SP, R5

PC

; Indirect R5

CALL

@R5

; Call on the address contained in the word
; pointed to by R5
; SP−2

SP, PC+2

@SP, @R5

PC

; Indirect, indirect R5

CALL

@R5+

; Call on the address contained in the word
; pointed to by R5 and increment pointer in R5.
; The next time—S/W flow uses R5 pointer—
; it can alter the program execution due to
; access to next address in a table pointed to by R5
; SP−2

SP, PC+2

@SP, @R5

PC

; Indirect, indirect R5 with autoincrement

CALL

X(R5)

; Call on the address contained in the address pointed
; to by R5 + X (e.g. table with address starting at X)
; X can be an address or a label
; SP−2

SP, PC+2

@SP, X(R5)

PC

; Indirect, indirect R5 + X

Advertising