Assembly “为什么?”;acall“;指令在Atmel 89C2051微控制器中不工作?
我试过Keil-µVision和Asem-51,但他们仍然认为这是一个语法错误。这是我的密码:Assembly “为什么?”;acall“;指令在Atmel 89C2051微控制器中不工作?,assembly,embedded,microcontroller,firmware,8051,Assembly,Embedded,Microcontroller,Firmware,8051,我试过Keil-µVision和Asem-51,但他们仍然认为这是一个语法错误。这是我的密码: acall subroutine1 . . . subroutine1: . . . ret AT89C2051部件肯定支持ACALL指令(因此声明了,我自己也成功地使用了它) 您在每个汇编程序中看到的确切错误是什么?源代码的其余部分编译正常吗 你能公布给出错误的确切来源吗(或者,如果代码本身是机密的,就举一个小例子来说明问题)?我刚刚找到了答案。在调用子例程之前,必须先执行子例程定义: o
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
AT89C2051部件肯定支持ACALL指令(因此声明了,我自己也成功地使用了它) 您在每个汇编程序中看到的确切错误是什么?源代码的其余部分编译正常吗
你能公布给出错误的确切来源吗(或者,如果代码本身是机密的,就举一个小例子来说明问题)?我刚刚找到了答案。在调用子例程之前,必须先执行子例程定义:
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
感谢psmears确认“acall”指令确实适用于AT89C2051
@好吧,如果这对你有帮助的话,你可以投票支持这个答案。谢谢。您应该能够稍后在源文件中调用子例程。如何做到这一点将取决于您的汇编程序(Keil/Assem-51/etc),但如果有一个“两次通过”汇编选项,则应该做到这一点。。。