我用 Keil-µVision 和 Asem-51 进行了尝试,但他们仍然认为这是一个语法错误。这是我的代码:
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
我用 Keil-µVision 和 Asem-51 进行了尝试,但他们仍然认为这是一个语法错误。这是我的代码:
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
AT89C2051 部分绝对支持 ACALL 指令(所以声称数据表,我自己已经成功使用它)。
您在每个汇编程序中看到的确切错误是什么?您的源代码的其余部分是否可以编译?
您能否发布给出错误的确切来源(或者如果代码本身是机密的,则可以举一个小例子来说明问题)?
我刚刚想通了。子程序定义在调用它之前必须先行:
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
感谢 psmears 确认“acall”指令确实适用于 AT89C2051。
@All,如果这对您有帮助,您可以投票赞成这个答案。谢谢。