Subtraktion AVR Assembler

Gast #3093276
Lesenswert?

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
#3093281
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren