Frage

Ich habe es mit Keil-µvision und ASEM-51 ausprobiert, aber sie haben immer noch verstopft, dass es sich um einen Syntaxfehler handelt. Hier ist mein Code:

acall subroutine1
.
.
.

subroutine1:
.
.
.
ret
War es hilfreich?

Lösung

Der AT89C2051 -Teil unterstützt definitiv die ACall -Anweisung (so behauptet die Datenblatt Und ich habe es selbst erfolgreich benutzt).

Was ist der genau Fehler, den Sie in jedem Assembler sehen? Kompiliert der Rest Ihrer Quelle OK?

Können Sie die genaue Quelle veröffentlichen, die einen Fehler angibt (oder ein kleines Beispiel erstellen, das das Problem demonstriert, wenn der Code selbst vertraulich ist)?

Andere Tipps

Ich habe es gerade herausgefunden. Die Unterroutine -Definition muss zuerst gehen, bevor sie sie anrufen:

   org 0
   sjmp start

subroutine1:
   .
   .
   .
   ret

start:
  .
  .
  .
  acall subroutine1

Vielen Dank an PSMears für die Bestätigung, dass die "ACALL" -Benweisung wirklich für AT89C2051 funktioniert.

@All, Sie können diese Antwort abgeben, wenn dies Ihnen geholfen hat. Vielen Dank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top