| Operation: | ACALL |
| Function: | Absolute Call Within 2K Block |
| Syntax: | ACALL code address |
| Instructions | OpCode | Bytes | Cycles | Flags |
| ACALL page0 | 0x11 | 2 | 2 | None |
| ACALL page1 | 0x31 | 2 | 2 | None |
| ACALL page2 | 0x51 | 2 | 2 | None |
| ACALL page3 | 0x71 | 2 | 2 | None |
| ACALL page4 | 0x91 | 2 | 2 | None |
| ACALL page5 | 0xB1 | 2 | 2 | None |
| ACALL page6 | 0xD1 | 2 | 2 | None |
| ACALL page7 | 0xF1 | 2 | 2 | None |
Description: ACALL unconditionally calls a subroutine at the indicated
code address. ACALL pushes the address of the instruction that follows ACALL
onto the stack, least-significant-byte first, most-significant-byte second.
The Program Counter is then updated so that program execution continues at
the indicated address.
The new value for the Program Counter is calculated by replacing the
least-significant-byte of the Program Counter with the second byte of the
ACALL instruction, and replacing bits 0-2 of the most-significant-byte of
the Program Counter with 3 bits that indicate the page. Bits 3-7 of the
most-significant-byte of the Program Counter remain unchaged.
Since only 11 bits of the Program Counter are affected by ACALL, calls may only
be made to routines located within the same 2k block as the first byte that
follows ACALL.
See Also: LCALL, RET,
Instruction Set
(C) Copyright 1997 - 2008 by Vault Information Services LLC. All Rights Reserved.
Information provided "as-is" without warranty. Please see details.
Contact us for usage and copy permission.
|