Hallo, ich habe einen 10-Bit-Wert in zwei Registern (2 und 8 Bit) und moechte von diesem einen 8-Bit-Wert (auch in Register) subtrahieren. Wie kann ich dies am geschicktesten machen? Kann ist feststellen ob ein negativer Wert heraus kommt? Muss ich hierzu bestimmte Teile zusaetzlich initialisieren? Vielen Dank und tschau, Thomas
Hallo Thomas, hängt jetzt von der Architektur ab, aber bei Atmel AVR geht das so: 10-Bit-Wert < 16-Bit, passt also in zwei Register (AL, AH) Der zweite Wert passt in ein Register (B), dann am besten noch ein Register vorhalten, wo immer nur Null drinsteht (N). sub al, b sbc ah, n sbc setzt dann eine Reihe von Flags, an denen man sehen kann ob das Ergebnis > oder < Null ist, ein Überlauf auftrat usw. Gruss, Kai
1. Jetzt kenn ich den AVR-Assembler nicht so gut. Aber fehlt da nicht noch ein Carry-Set oder Carry-Clear vor der dem SUB al,b ?! Siegfried
Hallo Siegfried, da kann ich dir leider auch keine Antwort geben. Ich habe es auf jeden Fall versucht und es funktioniert soweit. Viele Gruesse, Thomas
Hallo Siegfried, vor dem SUB al,b braucht man das Carry nicht Löschen, da SUB ohne Carry subtrahiert. Erst SBC zieht das Carry mit ab. Man könnte aber erst das Carry löschen und dann zwei mal SBC verwenden - ist aber umständlicher. Gruss, Kai
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.