PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Habe da mal ne Fräge....



Atmelbeginne
25.08.2008, 14:49
Hallöchen

Ich muss feststellen das ich mich schneller als gedacht mit assembler zurechtgefunden habe. Doch leider habe ich da ein kleines Problem bei dem ich alleine nicht weiter komme.

Ich möchte gerne 2 Register vergleichen. Gibt es einen Befehl dafür:

Beispiel:
RegA = RegB
Wenn ja dann goto a

Vielen Dank im voraus

ebendt
25.08.2008, 15:17
Zieh die Inhalte voneinander ab. Wenn das Ergebnis Null ist (breq bzw. brne), ist auch der Inhalt gleich.

Atmelbeginne
25.08.2008, 16:25
Danke für die schnelle Antwort. Auf das Subtrahieren bin ich schon gekommen =D>

Waran erkenne ich das das Ergebnis =0 ist? Im Simulator kann ich nicht erkennen das sich nach der Rechnung ein Flag ändert.

Die Befehle breq oder brne kennt assembler nicht.... :-s

Gibt es einen Befehl z.B: if Register = 0 dann tu das.

Ich habe bisher nur Befehle gefunden die das Restister Bitweise kontroliert

Lif79
25.08.2008, 18:51
Statusbits zurücksetzen

MOVF registerA, 0
SUBWF registerB, 0

nun sollten die statusbits C; DC und Z gesetzt sein wenn beide werte gleich...

Im Datenblatt Seite 127...


MfG

Atmelbeginne
25.08.2008, 20:36
Kann ich das mit dem Z Flag so verstehen, das bei allen Rechenoperationen die 0 ergeben das Flag gesetzt wird?

Atmelbeginne
25.08.2008, 20:38
Frage hat sich erledigt. Habe den entsprechenden Hinweis bei Sprut gefunden.