hmmm
Das elf sieht bei mir so aus:
avr-gcc arg.c -o arg.elf -mmcu=atmega16 -Os
avr-objdump -d arg.elf
Code:
arg.elf: file format elf32-avr
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
8: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
24: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
28: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
2c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
30: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
38: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ec ee ldi r30, 0xEC ; 236
68: f0 e0 ldi r31, 0x00 ; 0
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: a0 36 cpi r26, 0x60 ; 96
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a0 e6 ldi r26, 0x60 ; 96
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 5e 00 jmp 0xbc <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <warte>:
8e: cf 93 push r28
90: df 93 push r29
92: ac 01 movw r20, r24
94: 20 e0 ldi r18, 0x00 ; 0
96: 30 e0 ldi r19, 0x00 ; 0
98: 28 17 cp r18, r24
9a: 39 07 cpc r19, r25
9c: 64 f4 brge .+24 ; 0xb6 <warte+0x28>
9e: a4 ec ldi r26, 0xC4 ; 196
a0: b9 e0 ldi r27, 0x09 ; 9
a2: c0 e0 ldi r28, 0x00 ; 0
a4: d0 e0 ldi r29, 0x00 ; 0
a6: cd 01 movw r24, r26
a8: 01 97 sbiw r24, 0x01 ; 1
aa: f1 f7 brne .-4 ; 0xa8 <warte+0x1a>
ac: 2f 5f subi r18, 0xFF ; 255
ae: 3f 4f sbci r19, 0xFF ; 255
b0: 24 17 cp r18, r20
b2: 35 07 cpc r19, r21
b4: c4 f3 brlt .-16 ; 0xa6 <warte+0x18>
b6: df 91 pop r29
b8: cf 91 pop r28
ba: 08 95 ret
000000bc <main>:
bc: cf e5 ldi r28, 0x5F ; 95
be: d4 e0 ldi r29, 0x04 ; 4
c0: de bf out 0x3e, r29 ; 62
c2: cd bf out 0x3d, r28 ; 61
c4: 8f ef ldi r24, 0xFF ; 255
c6: 84 bb out 0x14, r24 ; 20
c8: 87 bb out 0x17, r24 ; 23
ca: 8a bb out 0x1a, r24 ; 26
cc: 8f ef ldi r24, 0xFF ; 255
ce: 88 bb out 0x18, r24 ; 24
d0: 8b bb out 0x1b, r24 ; 27
d2: 85 bb out 0x15, r24 ; 21
d4: 80 e9 ldi r24, 0x90 ; 144
d6: 91 e0 ldi r25, 0x01 ; 1
d8: 0e 94 47 00 call 0x8e <warte>
dc: 18 ba out 0x18, r1 ; 24
de: 1b ba out 0x1b, r1 ; 27
e0: 15 ba out 0x15, r1 ; 21
e2: 80 e9 ldi r24, 0x90 ; 144
e4: 91 e0 ldi r25, 0x01 ; 1
e6: 0e 94 47 00 call 0x8e <warte>
ea: f0 cf rjmp .-32 ; 0xcc <main+0x10>
Und das hex so:
avr-objcopy -j .text -j .data -O ihex arg.elf arg.hex
avr-objdump -D arg.hex -mavr5
Code:
arg.hex: file format ihex
Disassembly of section .sec1:
00000000 <.sec1>:
0: 0c 94 2a 00 jmp 0x0x54
4: 0c 94 45 00 jmp 0x0x8a
8: 0c 94 45 00 jmp 0x0x8a
c: 0c 94 45 00 jmp 0x0x8a
10: 0c 94 45 00 jmp 0x0x8a
14: 0c 94 45 00 jmp 0x0x8a
18: 0c 94 45 00 jmp 0x0x8a
1c: 0c 94 45 00 jmp 0x0x8a
20: 0c 94 45 00 jmp 0x0x8a
24: 0c 94 45 00 jmp 0x0x8a
28: 0c 94 45 00 jmp 0x0x8a
2c: 0c 94 45 00 jmp 0x0x8a
30: 0c 94 45 00 jmp 0x0x8a
34: 0c 94 45 00 jmp 0x0x8a
38: 0c 94 45 00 jmp 0x0x8a
3c: 0c 94 45 00 jmp 0x0x8a
40: 0c 94 45 00 jmp 0x0x8a
44: 0c 94 45 00 jmp 0x0x8a
48: 0c 94 45 00 jmp 0x0x8a
4c: 0c 94 45 00 jmp 0x0x8a
50: 0c 94 45 00 jmp 0x0x8a
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ec ee ldi r30, 0xEC ; 236
68: f0 e0 ldi r31, 0x00 ; 0
6a: 02 c0 rjmp .+4 ; 0x0x70
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
70: a0 36 cpi r26, 0x60 ; 96
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x0x6c
76: 10 e0 ldi r17, 0x00 ; 0
78: a0 e6 ldi r26, 0x60 ; 96
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x0x80
7e: 1d 92 st X+, r1
80: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x0x7e
86: 0c 94 5e 00 jmp 0x0xbc
8a: 0c 94 00 00 jmp 0x0x0
8e: cf 93 push r28
90: df 93 push r29
92: ac 01 movw r20, r24
94: 20 e0 ldi r18, 0x00 ; 0
96: 30 e0 ldi r19, 0x00 ; 0
98: 28 17 cp r18, r24
9a: 39 07 cpc r19, r25
9c: 64 f4 brge .+24 ; 0x0xb6
9e: a4 ec ldi r26, 0xC4 ; 196
a0: b9 e0 ldi r27, 0x09 ; 9
a2: c0 e0 ldi r28, 0x00 ; 0
a4: d0 e0 ldi r29, 0x00 ; 0
a6: cd 01 movw r24, r26
a8: 01 97 sbiw r24, 0x01 ; 1
aa: f1 f7 brne .-4 ; 0x0xa8
ac: 2f 5f subi r18, 0xFF ; 255
ae: 3f 4f sbci r19, 0xFF ; 255
b0: 24 17 cp r18, r20
b2: 35 07 cpc r19, r21
b4: c4 f3 brlt .-16 ; 0x0xa6
b6: df 91 pop r29
b8: cf 91 pop r28
ba: 08 95 ret
bc: cf e5 ldi r28, 0x5F ; 95
be: d4 e0 ldi r29, 0x04 ; 4
c0: de bf out 0x3e, r29 ; 62
c2: cd bf out 0x3d, r28 ; 61
c4: 8f ef ldi r24, 0xFF ; 255
c6: 84 bb out 0x14, r24 ; 20
c8: 87 bb out 0x17, r24 ; 23
ca: 8a bb out 0x1a, r24 ; 26
cc: 8f ef ldi r24, 0xFF ; 255
ce: 88 bb out 0x18, r24 ; 24
d0: 8b bb out 0x1b, r24 ; 27
d2: 85 bb out 0x15, r24 ; 21
d4: 80 e9 ldi r24, 0x90 ; 144
d6: 91 e0 ldi r25, 0x01 ; 1
d8: 0e 94 47 00 call 0x0x8e
dc: 18 ba out 0x18, r1 ; 24
de: 1b ba out 0x1b, r1 ; 27
e0: 15 ba out 0x15, r1 ; 21
e2: 80 e9 ldi r24, 0x90 ; 144
e4: 91 e0 ldi r25, 0x01 ; 1
e6: 0e 94 47 00 call 0x0x8e
ea: f0 cf rjmp .-32 ; 0x0xcc
Das hex codiert also rund 240 Bytes (Objektgröße) in 680 Bytes (Dateigröße).
Lesezeichen