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

时间:2011-01-04 10:55:32

标签: assembly embedded microcontroller firmware 8051

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

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret

2 个答案:

答案 0 :(得分:3)

AT89C2051部分肯定支持ACALL指令(因此声称data sheet并且我自己成功使用了它。)

您在每个汇编程序中看到的完全错误是什么?你的其他资源编译好吗?

您是否可以发布导致错误的确切来源(或者如果代码本身是机密的,请提供一个演示问题的小例子)?

答案 1 :(得分:0)

我只是想通了。子程序定义必须先调用才能调用它:

   org 0
   sjmp start

subroutine1:
   .
   .
   .
   ret

start:
  .
  .
  .
  acall subroutine1

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

@All,如果这对你有所帮助,你可以投票给这个答案。感谢。