| << Previous | Next >> | |
| |
LCALL x,mn Long Call Subroutine Rabbit 2000/3000/4000 Instruction
(SP - 1) = XPC
(SP - 2) = PChigh
(SP - 3) = PClow
XPC = x
PC = mn
SP = SP - 3
Description
This instruction is similar to the CALL routine in that it transfers program execution to the subroutine address specified by the 16-bit constant mn. The LCALL instruction is special in that it allows calls to be made to a computed address in XMEM. Note that the value of XPC (and consequently the address space defined by XPC) is dynamically changed with the LCALL instruction.
First, XPC is pushed on the stack. Next, PC is pushed on the stack, high-order byte first. Then XPC is loaded with the 8-bit constant x and PC is loaded with mn. The SP is updated to reflect the three bytes pushed onto it.
Alternate Forms
The Dynamic C assembler recognizes several forms of LCALL:
LCALL label
LCALL x:mn
LCALL x,mnThe parameter label is a user-defined label. The colon is equivalent to the comma as a delimiter.
| | |
| << Previous | Next >> |