also im s-File steht noch
| 1 |   ldi  r30, lo8(sBox)  
 | 
| 2 |   ldi  r31, hi8(sBox)  
 | 
| 3 |   add  r30, r24      
 | 
| 4 |   adc  r31, __zero_reg__  
 | 
| 5 |   lpm r24, Z
 | 
im hex-file an entsprechender Adresse steht dann
| 1 | :1001600084918E2F880F10F43BE18327E4B984B982
 | 
| 2 |          ^^^^
 | 
das enspricht der binären Folge
und im AVR "Instruction Set Nomenclature" steht, dass "LPM" wie folgt 
übersetzt wird:
| 1 | (i)   LPM None, R0 implied PC ← PC + 1
 | 
| 2 | (ii)  LPM Rd, Z 0 ≤ d ≤ 31 PC ← PC + 1
 | 
| 3 | (iii) LPM Rd, Z+ 0 ≤ d ≤ 31 PC ← PC + 1
 | 
| 4 | 
 | 
| 5 | (i)   1001 0101 1100 1000
 | 
| 6 | (ii)  1001 000d dddd 0100
 | 
| 7 | (iii) 1001 000d dddd 0101
 | 
einzig sinnvolle Übersetzung ergibt sich, wenn man zuvor die Bytes 
tauscht. Das hat sicher was mit Big- und Little-Endian zu tun, aber 
damit halte ich mich jetzt mal nicht auf...
Ich vergleiche dann also:
| 1 |      1001 0001 1000 0100
 | 
| 2 | (ii) 1001 000d dddd 0100
 | 
=> d = 0b11000 = 24 (= r24, passt)
(ii) ist ohne "Post increment". Also scheints wirklich ein Fehler im 
Disassembler zu sein.
Danke
Gruß Leo