PicNick - tolle Arbeit !!

Habe auch mal die Disassambler-Outputs zwischen avr_dis.eXE und DisAVR.eXE verglichen. Das hornalte AVR-Tool kennt nicht mal den vollen Atmega-Befehlssatz und sagt immer NOP.

Hier ein Code-Schnipsel (Atmega169):

AVR-Studio:
Code:
+00000126:   3007        CPI     R16,0x07     
+00000127:   F410        BRCC    PC+0x03      
+00000128:   940C0134    JMP     0x00000134   
+0000012A:   91800124    LDS     R24,0x0124
avr_dis.eXE (Picnicks Hexhacker)
Code:
      CPI      r16,0x07
      BRCC     L_0x0254
      JMP      L_0x0268
L_0x0254:
      LDS      r24,0x0124
und jetzt kommt Schrott: DisAVR.eXE
Code:
          cpi    r16, 0x07    ; 0126 3007
           brsh  AVR012A      ; 0127 F410
                              ; 0128 940C
          nop                 ; 0129 0134
AVR012A:  lds    r24, 0x0124  ; 012A 9180 0124
An einem brauchbaren Source-Bezug bin ich noch am Arbeiten.
Wäre nicht ein AfterBurner für den AVR-Studio-Ausgabefile einfacher zu programmieren? Immerhin steckt da alles schon drin - es fehlen nur die Labels!
Beispiel:
Code:
265:          If Len(lcd_textbuffer) >= 7 Then
+00000125:   2F08        MOV     R16,R24          Copy register
+00000126:   3007        CPI     R16,0x07         Compare with immediate
265:          If Len(lcd_textbuffer) >= 7 Then
+00000127:   F410        BRCC    PC+0x03          Branch if carry cleared
+00000128:   940C0134    JMP     0x00000134       Jump
266:             Lcd_scrollmode = 1                                   'Scroll If Text Is Longer Than Display Size
+0000012A:   91800124    LDS     R24,0x0124       Load direct from data space