You are here : assembly8051ACALL

ACALL - 8051

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.


ACALL address


;Program Execution jumps to the label and returns back after RET
ACALL LABEL	;2 bytes 2 cycles

Output / Return Value


Alternatives / See Also