Почему в микроконтроллере Atmel 89C2051 не работает инструкция "acall"?
Я попробовал это с Keil-µVision и Asem-51, но они все еще подключают, что это синтаксическая ошибка. Вот мой код:
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
2 ответа
Часть AT89C2051 определенно поддерживает инструкцию ACALL (поэтому требует спецификацию, и я успешно использовал ее сам).
Какую именно ошибку вы видите в каждом ассемблере? Остальная часть вашего исходного кода компилируется нормально?
Можете ли вы опубликовать точный источник, который дает ошибку (или привести небольшой пример, демонстрирующий проблему, если сам код является конфиденциальным)?
Я просто понял это. Определение подпрограммы должно идти первым перед вызовом:
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
Спасибо psmears за подтверждение того, что инструкция "acall" действительно работает для AT89C2051.
@ Все, вы можете проголосовать за этот ответ, если это вам помогло. Благодарю.