Почему инструкция «Acall» не работает в микроконтроллере Atmel 89C2051?
-
15-10-2019 - |
Вопрос
Я попробовал это с Keil-µvision и ASEM-51, но они все еще подключали, что это синтаксическая ошибка. Вот мой код:
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
Решение
Часть AT89C2051 определенно поддерживает инструкцию ACALL (поэтому утверждает техническая спецификация И я успешно использовал это сам).
Что это точный Ошибка, которую вы видите в каждом ассемблере? Остальная часть вашего источника в порядке?
Можете ли вы опубликовать точный источник, который дает ошибку (или сделает небольшой пример, который демонстрирует проблему, если сам код конфиденциально)?
Другие советы
Я только что понял это. Определение подпрограммы должно идти первым, прежде чем называть его:
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
Спасибо PSMears за подтверждение, что инструкция «Acall» действительно работает для AT89C2051.
@All, вы можете проголосовать за этот ответ, если это помогло вам. Спасибо.