Erklärbedarf Assembler

OP #3599778
Lesenswert?
• ▲
▼
Hallo,
ich verstehe den Assembler Code hier nicht. Komme leider von der C 
Richtung und wollte nun mal etwas tiefer in die Materie einsteigen.

Problem macht mir konkret der Befehl brne nach den zwei compares.
Für das Null flag im sreg ist doch der erste compare völlig unerheblich, 
oder? Warum ist der dann trozdem da. Fragen über Fragen...
1
reset:    clr  r0
2
    out  SREG, r0    ; Clear interrupts and flags
3

4
  ; Set up stack
5
    ldi2  ZL, ZH, RAMEND
6
    out  SPH, ZH
7
    out  SPL, ZL
8
  ; Clear RAM and all registers
9
clear_loop:  st  -Z, r0
10
    cpi  ZL, SRAM_START
11
    cpc  ZH, r0
12
    brne  clear_loop1
13
    ldi  ZL, 30      ; Start clearing registers
14
clear_loop1:  cp  ZL, r0
15
    cpc  ZH, r0
16
    brne  clear_loop    ; Leaves with all registers (r0 through ZH) at 0
Gast #3599852
Lesenswert?
• ▲
▼
Die Abfrage des Zero Flags gibt tatsächlich keinen echten Test auf 
Gleichheit. Es wird nur das high Byte Verglichen, und ggf. ein Überlauf 
von davor berücksichtigt. Nach CPI  + CPC sind eigentlich nur das Carry 
Flag und negative Falg wirklich aussagekräftig.

Es stimmt: bei 0x00FF ist Schluss.

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.