assemblyembeddedmicrocontrollerfirmware8051

Why does "acall" instruction does not work in Atmel 89C2051 microcontroller?


I tried it with Keil-µVision and Asem-51 but they still plugging that it is an syntax error. Here is my code:

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret

Solution

  • The AT89C2051 part definitely supports the ACALL instruction (so claims the data sheet and I've successfully used it myself).

    What is the exact error that you are seeing in each assembler? Does the rest of your source compile OK?

    Can you post the exact source that is giving an error (or make a small example that demonstrates the issue if the code itself is confidential)?