Forum: Mikrocontroller und Digitale Elektronik IF-Abfrage in Assembler [Anfänger]


von Phillip P. (cptzero)


Lesenswert?

Guten Tag,

folgendes Problem:

Ich möchte eine IF-Anweisung in Assembler schreiben.
Infos: ATMega128,Assembler, in Eclipse

Hier mal der Pseudo-Code:

while:
   call look4key    // schreibt einen Wert in Register 17

// jetzt kommt mein Problem:

if register 24 = 0xff -> springe zu while

// wenn ungleich 0xff in r24 dann laufe weiter im code

call ...
call ...
etc.


danke für die Hilfe

von Michael (Gast)


Lesenswert?

Gibt es denn nirgendwo ein Assemblerprogramm für einen ATmega, wo man 
solche Dinge abkupfern kann?

Falls der Inhalt von register 24 nicht weiter gebraucht wird, könnte man 
auf so Dinge wie
1
  INC     R24              
2
  BRNE    myLabel
kommen.

von Phillip P. (cptzero)


Lesenswert?

Michael schrieb:
> Gibt es denn nirgendwo ein Assemblerprogramm für einen ATmega, wo man
> solche Dinge abkupfern kann?
>
> Falls der Inhalt von register 24 nicht weiter gebraucht wird, könnte man
> auf so Dinge wie
>
1
>   INC     R24
2
>   BRNE    myLabel
3
>
> kommen.

Leider wird der Inhalt in r24 später weiter verwendet, den kann ich also 
nicht verändern. danke

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Phillip Pressol schrieb:
> Ich möchte eine IF-Anweisung in Assembler schreiben.

In Assembler gibts sowas wie if nicht. In deinem Fall wäre das ein 
Vergleich. Also:

cpi r24, 0xff
breq -> Label zu deiner While Schleife, die es so in der Art in 
Assembler auch nicht gibt, musst du auch mit Hand programmieren, also so 
in etwa:

Main:

//was eben gemacht werden soll..

rjmp Main

Arbeite doch einfach hier auf der Seite das Assembler Tutorial durch, 
das ist nicht schlecht gemacht.

MfG Dennis

von Phillip P. (cptzero)


Lesenswert?

Vielen Dank!

cpi r24, 0xff
breq -> Label zu deiner While Schleife

sowas habe ich gesucht!

das while nur eine marke ist, ist mir bewusst : )


vielen dank

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.