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
¿Fue útil?

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 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top