Hallo, hätte eine Frage zu bedingten Sprungbefehlen. Ich möchte 2 Zahlen miteinander vergleichen und nur wenn die eine Zahl größer ist wie die andere, dann soll der Sprung ausgeführt werden, ansonsten wird das Programm weiter abgearbeitet. Ist die in Assembler überhaupt möglich? z.B.: 4>3? --> Ja, Sprung an eine andere Stelle 2>3? --> Nein, Programm wird weiter abgearbeitet
Falls du das mit einem AVR machen willst gibt es gleich ein paar Möglichkeiten, es spielt auch eine Rolle ob es vorzeichenlose Zahlen sind oder nicht: BRGE BRLO BRLT BRSH Näheres verrät dir der instruction set des jeweiligen AVR Gurss
Es ist ein Atmel-Controller...Programmiert wird über das Atmel-Tool Flip... Genauer gesagt, möchte ich vergleichen ob die Zahl im Akku größer oder gleich 10 ist bzw. anders herum geht es auch, ob die Zahl im Akku kleiner gleich 9 ist.
Was ist denn ein Atmel-Controller? Atmel produziert eine breite Palette verschiedener Controllerfamilien, unter Anderem, 8051er (At89xx), AVRs (AT90xx), ARM (AT91xx)... Wenn du also konkrete Hilfe haben willst, dann nenne das Teil beim korrekten Namen, so dass keine Missverständnisse möglich sind. ...
Mal so aus dem Ärmel geschüttelt: Prüfen auf Gleichheit: CNJE oder alternativ eine Zahl von der anderen Subtrahieren und wenn Zero rauskommt, mit JZ springen. Zum prüfen auf größer oder kleiner: Carry - Flag setzen Eine Zahl von der anderen Abziehen unter Berücksichtigung des Carry Flags. Wenn das Carryflag nach der Operation verschwindet, war die erste Zahl größer als die andere (Sprung mit JNC). Wenn das Carryflag noch vorhanden ist, war die zweite Zahl größer als die erste (Sprung mit JC) Klingt kompliziert, sind aber nur zwei oder drei Befehle hintereinander....
Habe es mittlweile so gelöst: Subtraktion: subb A, #0Ah ;vom Akku wird 10 abgezogen jnc Subtraktion ;Sprung an Label Subtraktion, wenn Carry-Bit 0 ist add A, #0Ah ;10 wieder hinzuaddieren um die letzte positive Einer-Stelle zu erhalten add A, #30h ;hinzuaddieren der Zahl 0 im Hex-Code um richtige Hex-Zahl zu erzeugen mov R3, A ;Inhalt vom Akku in R3 kopieren (Einer-Stelle)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.