Hallo, ich habe zwei vorzeichenlose 1-Byte-Integer und bilde deren Differenz. Weiß jemand, ob es einen passenden Branch-Befehl gibt, der genau dann springt, oder eben genau nicht dann springt, wenn das Ergebnis in ein vorzeichenbehaftetes 1-Byte-Integer paßt? Bsp.: A=200, B=130, A-B=70 paßt. A=200, B=70, A-B=130 paßt nicht. A=10, B=50, A-B=-40 paßt. A=10, B=200, Ab-B=-190 paßt nicht. Hab jetzt schon die ganzen Formeln für die Flags beim sub-Befehl durchgeschaut, komme aber irgendwie nicht dahinter. Danke. Peter Leifling
Ich habs noch nie benutzt.. aber es gibt das V-Flag.. Zweierkomplement-Überlauf.
V setzt voraus, das die Operanden im 2-er-Komplement sind. Ist hier nicht der Fall. Resultat ist ok wenn C=N.
Hallo, daß es das Carry ist, wäre ja zu einfach. ;-) Das Carry wird z.B. bei 4-9 gesetzt, was ja aber wohl noch paßt. Any other ideas? Grüße Peter
War wohl zu kurz ausgedrückt. Wenn nach dem CP/SUB das Carry-Bit (C) den gleichen Wert hat wie das Sign-Bit (N), dann passt es.
mov r16, A sub r16, B andi r16, 0x80 sbci r16, 0 brmi out_of_range
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.