1

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

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret
4

2 回答 2

3

AT89C2051 部分绝对支持 ACALL 指令(所以声称数据表,我自己已经成功使用它)。

您在每个汇编程序中看到的确切错误是什么?您的源代码的其余部分是否可以编译?

您能否发布给出错误的确切来源(或者如果代码本身是机密的,则可以举一个小例子来说明问题)?

于 2011-01-04T11:18:46.607 回答
0

我刚刚想通了。子程序定义在调用它之前必须先行:

   org 0
   sjmp start

subroutine1:
   .
   .
   .
   ret

start:
  .
  .
  .
  acall subroutine1

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

@All,如果这对您有帮助,您可以投票赞成这个答案。谢谢。

于 2011-01-04T12:03:40.983 回答