Forum: Mikrocontroller und Digitale Elektronik ASM Verständnisfrage


von Gästchen (Gast)


Lesenswert?

Hey,
ich verstehe nicht was folgender inline-asm befehl macht.

"rjmp 1f\n 1:"

Was ich bisher herausgefunden habe:
- rjmp: relativer jump
- \n Zeilenumbruch zum trennen mehrerer asm-befehle
- 1: stellt eine marke da

Nur wo ist nun der Zusammenhang? (Handelt sich hierbei um ein Delay aus
einer LCD-Routine aus der Define Anweisung. Scheint öfters verwendet zu
werden).

von Sebastian Eckert (Gast)


Lesenswert?

Es muß im Programmcode irgendwo eine Marke (auch als Label bezeichnet)
geben, die "lf" heißt. Dies sind dann zwei Assemblerzeilen, nämlich
"rjmp lf" und "l:". Das erste ist ein Sprung zu einer Marke mit dem
Namen "lf:" und darauffolgend wird eine weitere Sprungmarke gesetzt,
nämlich "l". Also in Klartext:

<...Programmcode vorher...>
rjmp lf
l:
<...Programmcode nachher...>

Irgendwo im Code muß die Zeile
lf:
vorkommen, sonst ergibt das Ganze keinen Sinn.

von Beschreibung (Gast)


Lesenswert?

Hm,
im ganzen Programmcode kann ich kein "1f" finden :(

also die ganze Zeile sieht wie folgt aus:

_asm_ __volatile__( "rjmp 1f\n 1:" );              //warte 500ns

Quelle:
http://www.mikrocontroller.net/mc-project/Pages/AVR/LCD/lcd.html

Vielleicht ist es im Zusammenhang doch klarer?
Ich komme zumindest nicht dahinter :(

von A.K. (Gast)


Lesenswert?

"1f" steht für das nächste Label "1" (forward), wie umgekehrt "1b"
für das voreherige steht (backward). Der u.A. Befehl ist also nicht als
eine langsamere Version von "nop".

von Beschreibung (Gast)


Lesenswert?

Ah, alles klar.

Wo finde ich solche Informationen generell? Dann muss ich für solche
"Kleineigkeiten" nicht immer das Forum "belasten".

Danke und viele Grüße

von A.K. (Gast)


Lesenswert?

Die universelle Erkenntisquelle für alle Fragen ist noch erfunden
worden. In diesem Fall steht das bestimmt irgendwo in der Doku vom GNU
Assembler:
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-assembler/index.html.

von A.K. (Gast)


Lesenswert?

...ist noch nicht erfunden worden...

von A.K. (Gast)


Lesenswert?

Sorry, da ist was schiefgegangen. Einmal hätte gereicht.

von Sebastian (Gast)


Lesenswert?


von Beschreibung (Gast)


Lesenswert?

Vielen Dank für den Link.

Dort hatte ich in meiner Recherche vor dem Posting auch bereits
geschaut und habe dafür nichts gefunden. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.