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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.