| << Previous | Next >> | |
| |
LLCALL lxpc,mn Far Call Rabbit 4000 Instruction
(SP-1) = XPChigh
(SP-2) = XPClow
(SP-3) = PChigh
(SP-4) = PClow
XPClow = xpl
XPChigh = xph
PC = mn
SP = SP-4
Description
This instruction is similar to the LCALL instruction in that it transfers program execution to the subroutine address specified by the 16-bit operand mn and allows calls to be made to a computed address in extended memory. The LLCALL instruction uses the 12-bit XPC of the Rabbit 4000 processor instead of the 8-bit XPC of earlier Rabbit processors. Note that the value of XPC and consequently the address space defined by the XPC is dynamically changed with the LCALL instructions.
In the LLCALL instruction, first XPC is pushed onto the stack, high-order byte first, then the low-order byte. Next, PC is pushed onto the stack, high-order byte first, then the low-order byte. Then XPC is loaded with the 16-bit value lxpc (its 4 most significant bits are ignored) and the PC is loaded with the 16-bit value mn. SP is then updated.
Alternate Forms
The Dynamic C assembler recognizes several other forms of this instruction.
LCALL label
LCALL x,label
LCALL x:label
LCALL x:mnThe parameter "label" is user-defined. The colon is equivalent to the comma as a delimiter.
| | |
| << Previous | Next >> |