Bug in avr-gcc?(zu große Konstante bei der disassembly)

Gast #2700266
Lesenswert?
• ▲
▼
Hallo,

Ich meine einen Bug gefunden zu haben, ich bin mir aber nicht wirklich 
sicher denn das Programm läuft soweit, und er ist meiner Meinung nach so 
gravierend, dass er schon wesentlich früher aufgefallen wäre(weil fast 
jedes Programm nicht so laufen würde wie es sollte).

Also im instruction set steht zu den br** Befehlen, dass vom PC(Program 
Counter) aus um -64 ≤ k ≤ +63 gesprungen werden kann.
Ich hab jetzt allerdings(bei der Suche nach Optimierungsmöglichkeiten) 
in der *.lss Datei unter anderem folgendes gefunden, was mit der obigen 
Bedingung nicht wirklich übereinstimmt:
1
...
2
     d54:  f1 f6         brne  .-68       ; 0xd12 <fill_buffer+0x6a>
3
      {
4
        current_led_column_sd++;
5
     d56:  80 91 44 01   lds  r24, 0x0144
6
     d5a:  90 91 45 01   lds  r25, 0x0145
7
     d5e:  01 96         adiw  r24, 0x01  ; 1
8
     d60:  90 93 45 01   sts  0x0145, r25
9
     d64:  80 93 44 01   sts  0x0144, r24
10

11
        if(current_led_column_sd == pic_info.pic_length)
12
     d68:  20 91 d2 02   lds  r18, 0x02D2
13
     d6c:  30 91 d3 02   lds  r19, 0x02D3
14
     d70:  82 17         cp  r24, r18
15
     d72:  93 07         cpc  r25, r19
16
     d74:  71 f6         brne  .-100      ; 0xd12 <fill_buffer+0x6a>
17
...

Hat jemand eine Vermutung bzw. weis jemand was hier nicht stimmt(ich 
kann mir nach wie vor nicht wirklich vorstellen das, dass ein Bug 
ist...)

Weiterhin bei eigenen Assembler Stücken, die auf Sprungmarken ausserhalb 
dieses Bereiches zeigen, warnt der Gnu-assembler auch nicht, dass die 
Sprungmarke ausserhalb des Bereiches ist.

Gruß Philipp

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.