Professional Documents
Culture Documents
Acall
Acall
The ACALL instruction calls a subroutine located at the specified address. The PC is incremented
twice to obtain the address of the following instruction. The 16-bit PC is then stored on the stack
(low-order byte first) and the stack pointer is incremented twice. No flags are affected.
The address of the subroutine is calculated by combining the 5 high-order bits of the incremented PC
(for A15-A11), the 3 high-order bits of the ACALL instruction opcode (for A10-A8), and the second
byte of the instruction (for A7-A0). The subroutine that is called must be located in the same 2KByte
block of program memory as the opcode following the ACALL instruction.
See Also: LCALL, RET
ACALL addr11
C AC F0 RS1 RS0 OV
Bytes
Cycles
Encoding
A7A6A5A4A3A2A1A0
2
2
A10A9A810001
Operation
PC = PC + 2
SP = SP + 1
(SP) = PC7-0
SP = SP + 1
(SP) = PC15-8
PC10-0 = A10-0
Example
ACALL LABEL
http://www.keil.com/support/man/docs/is51/is51_acall.htm