Kann mir wer erklären warum bei dieser Subtraktion das N Flag gesetzt wird? temp wird von temp2 abgezogen und temp1 wird von temp3 abgezogen. Kommt ja kein negatives Ergebnis raus?! ldi temp,0x20 ldi temp1,0x58 ldi temp2,0xFF ldi temp3,0xFF sub temp2,temp sbc temp3,temp1 brmi minus1 jmp plus1 Danke! LG
Lukas schrieb: > Kommt ja kein negatives Ergebnis raus?! Wenn man das Eregbnis als 2-er Komplement Zahlen auffassen will (und das tust du wenn du das N-Flag betrachtest), dann kommt da ein negatives Ergebnis raus. 0xFFFF ist als 2-er Komplement -1 davon etwas abgezogen was kleiner als 0x7FFFF (die größte positive Zahl) ist -> das Ergebnis bleibt negativ
OkaY alles klar. Dann muss ich wohl ein bisschen software umschreiben :-) Danke euch!
Ob Operationen als signed oder unsigned betrachtet werden, hängt nur davon ab, welche Flags Du danach testest. Ein unsigned Überlauf setzt das C-Flag. Ein signed Überlauf setzt das V-Flag.
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.