¿Por qué “ACALL” instrucción no funciona en Atmel 89C2051 microcontrolador?
-
15-10-2019 - |
Pregunta
Lo he probado con Keil-µVision y Asem-51 pero todavía enchufando que se trata de un error de sintaxis. Aquí está mi código:
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
Solución
La parte AT89C2051 definitivamente apoya la instrucción ACALL (por lo afirma la hoja de datos y he utilizado con éxito que yo).
¿Cuál es la exacta ??em> de error que está viendo en cada ensamblador? ¿El resto de su compilación fuente OK?
Se puede publicar la fuente exacta que está dando un error (o hacer un pequeño ejemplo que demuestra el problema si el código en sí mismo es confidencial)?
Otros consejos
Yo sólo lo descubrió. La definición de una subrutina debe ir primero antes de llamar a:
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
Gracias psmears para confirmar que "ACALL" instrucción realmente funciona para AT89C2051.
@All, puede votar esta respuesta si esto le ayudó. Gracias.