Почему в микроконтроллере Atmel 89C2051 не работает инструкция «acall»? - PullRequest
1 голос
/ 04 января 2011

Я пробовал это с Keil-µVision и Asem-51, но они все еще подключают, что это синтаксическая ошибка. Вот мой код:

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret

Ответы [ 2 ]

3 голосов
/ 04 января 2011

Часть AT89C2051 определенно поддерживает инструкцию ACALL (поэтому требует лист данных , и я сам успешно его использовал).

Что такое ошибка точная что вы видите в каждом ассемблере?Оправдывает ли остальная часть вашего исходного кода все в порядке?

Можете ли вы опубликовать точный источник, сообщающий об ошибке (или привести небольшой пример, демонстрирующий проблему, если сам код является конфиденциальным)?

0 голосов
/ 04 января 2011

Я только что понял это. Определение подпрограммы должно идти первым перед вызовом:

   org 0
   sjmp start

subroutine1:
   .
   .
   .
   ret

start:
  .
  .
  .
  acall subroutine1

Спасибо psmears за подтверждение того, что инструкция "acall" действительно работает для AT89C2051.

@ Все, вы можете проголосовать за этот ответ, если это вам помогло. Спасибо.

...