assembly Atmel 89C2051微控制器中的“acall”指令为什么不起作用?

z4iuyo4d  于 2023-05-29  发布在  其他
关注(0)|答案(2)|浏览(93)

我尝试了Keil-µVision和Asem-51,但他们仍然认为这是一个语法错误。下面是我的代码:

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret
hmae6n7t

hmae6n7t1#

AT89C2051部分绝对支持ACALL指令(因此声称data sheet,我自己也成功地使用了它)。
你在每个汇编器中看到的“确切”错误是什么?你的源代码的其余部分编译好了吗?
你能发布给出错误的确切来源吗(或者如果代码本身是保密的,可以做一个小例子来演示这个问题)?

fnvucqvd

fnvucqvd2#

我刚想明白。在调用子例程之前,必须先执行子例程定义:

org 0
   sjmp start

subroutine1:
   .
   .
   .
   ret

start:
  .
  .
  .
  acall subroutine1

感谢psmears确认“acall”指令确实适用于AT89C2051。

相关问题