はじめてのひき - FizzBuzzAsm_avr Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
! Version
% avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libexecdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=i486-linux-gnu --host=i486-linux-gnu --target=avr
Thread model: single
gcc version 4.3.0 (GCC)
! Optimized
fizzbuzz.o: file format elf32-avr
Disassembly of section .text:
00000000 <main>:
0: af 92 push r10
2: bf 92 push r11
4: cf 92 push r12
6: df 92 push r13
8: ef 92 push r14
a: ff 92 push r15
c: 0f 93 push r16
e: 1f 93 push r17
10: cf 93 push r28
12: df 93 push r29
14: c1 e0 ldi r28, 0x01 ; 1
16: d0 e0 ldi r29, 0x00 ; 0
18: 0f 2e mov r0, r31
1a: f0 e0 ldi r31, 0x00 ; 0
1a: R_AVR_LO8_LDI .data+0x13
1c: cf 2e mov r12, r31
1e: f0 e0 ldi r31, 0x00 ; 0
1e: R_AVR_HI8_LDI .data+0x13
20: df 2e mov r13, r31
22: f0 2d mov r31, r0
24: 0f 2e mov r0, r31
26: f0 e0 ldi r31, 0x00 ; 0
26: R_AVR_LO8_LDI .data+0xe
28: ef 2e mov r14, r31
2a: f0 e0 ldi r31, 0x00 ; 0
2a: R_AVR_HI8_LDI .data+0xe
2c: ff 2e mov r15, r31
2e: f0 2d mov r31, r0
30: 0f 2e mov r0, r31
32: f0 e0 ldi r31, 0x00 ; 0
32: R_AVR_LO8_LDI .data+0x9
34: af 2e mov r10, r31
36: f0 e0 ldi r31, 0x00 ; 0
36: R_AVR_HI8_LDI .data+0x9
38: bf 2e mov r11, r31
3a: f0 2d mov r31, r0
3c: 00 e0 ldi r16, 0x00 ; 0
3c: R_AVR_LO8_LDI .data
3e: 10 e0 ldi r17, 0x00 ; 0
3e: R_AVR_HI8_LDI .data
40: 8c 2f mov r24, r28
42: 9d 2f mov r25, r29
44: 6f e0 ldi r22, 0x0F ; 15
46: 70 e0 ldi r23, 0x00 ; 0
48: 00 d0 rcall .+0 ; 0x4a <main+0x4a>
48: R_AVR_13_PCREL __divmodhi4
4a: 89 2b or r24, r25
4c: 01 f4 brne .+0 ; 0x4e <main+0x4e>
4c: R_AVR_7_PCREL .text+0x56
4e: 80 2f mov r24, r16
50: 91 2f mov r25, r17
52: 00 d0 rcall .+0 ; 0x54 <main+0x54>
52: R_AVR_13_PCREL puts
54: 00 c0 rjmp .+0 ; 0x56 <main+0x56>
54: R_AVR_13_PCREL .text+0x94
56: 8c 2f mov r24, r28
58: 9d 2f mov r25, r29
5a: 65 e0 ldi r22, 0x05 ; 5
5c: 70 e0 ldi r23, 0x00 ; 0
5e: 00 d0 rcall .+0 ; 0x60 <main+0x60>
5e: R_AVR_13_PCREL __divmodhi4
60: 89 2b or r24, r25
62: 01 f4 brne .+0 ; 0x64 <main+0x64>
62: R_AVR_7_PCREL .text+0x6c
64: 8a 2d mov r24, r10
66: 9b 2d mov r25, r11
68: 00 d0 rcall .+0 ; 0x6a <main+0x6a>
68: R_AVR_13_PCREL puts
6a: 00 c0 rjmp .+0 ; 0x6c <main+0x6c>
6a: R_AVR_13_PCREL .text+0x94
6c: 8c 2f mov r24, r28
6e: 9d 2f mov r25, r29
70: 63 e0 ldi r22, 0x03 ; 3
72: 70 e0 ldi r23, 0x00 ; 0
74: 00 d0 rcall .+0 ; 0x76 <main+0x76>
74: R_AVR_13_PCREL __divmodhi4
76: 89 2b or r24, r25
78: 01 f4 brne .+0 ; 0x7a <main+0x7a>
78: R_AVR_7_PCREL .text+0x82
7a: 8e 2d mov r24, r14
7c: 9f 2d mov r25, r15
7e: 00 d0 rcall .+0 ; 0x80 <main+0x80>
7e: R_AVR_13_PCREL puts
80: 00 c0 rjmp .+0 ; 0x82 <main+0x82>
80: R_AVR_13_PCREL .text+0x94
82: df 93 push r29
84: cf 93 push r28
86: df 92 push r13
88: cf 92 push r12
8a: 00 d0 rcall .+0 ; 0x8c <main+0x8c>
8a: R_AVR_13_PCREL printf
8c: 0f 90 pop r0
8e: 0f 90 pop r0
90: 0f 90 pop r0
92: 0f 90 pop r0
94: 21 96 adiw r28, 0x01 ; 1
96: c5 36 cpi r28, 0x65 ; 101
98: d1 05 cpc r29, r1
9a: 01 f4 brne .+0 ; 0x9c <main+0x9c>
9a: R_AVR_7_PCREL .text+0x40
9c: df 91 pop r29
9e: cf 91 pop r28
a0: 1f 91 pop r17
a2: 0f 91 pop r16
a4: ff 90 pop r15
a6: ef 90 pop r14
a8: df 90 pop r13
aa: cf 90 pop r12
ac: bf 90 pop r11
ae: af 90 pop r10
b0: 08 95 ret
! Normal
fizzbuzz.o: file format elf32-avr
Disassembly of section .text:
00000000 <main>:
0: df 93 push r29
2: cf 93 push r28
4: 00 d0 rcall .+0 ; 0x6 <main+0x6>
4: R_AVR_13_PCREL .text+0x6
6: 00 d0 rcall .+0 ; 0x8 <main+0x8>
6: R_AVR_13_PCREL .text+0x8
8: cd b7 in r28, 0x3d ; 61
a: de b7 in r29, 0x3e ; 62
c: 81 e0 ldi r24, 0x01 ; 1
e: 90 e0 ldi r25, 0x00 ; 0
10: 9a 83 std Y+2, r25 ; 0x02
12: 89 83 std Y+1, r24 ; 0x01
14: 00 c0 rjmp .+0 ; 0x16 <main+0x16>
14: R_AVR_13_PCREL .text+0x88
16: 89 81 ldd r24, Y+1 ; 0x01
18: 9a 81 ldd r25, Y+2 ; 0x02
1a: 2f e0 ldi r18, 0x0F ; 15
1c: 30 e0 ldi r19, 0x00 ; 0
1e: 62 2f mov r22, r18
20: 73 2f mov r23, r19
22: 00 d0 rcall .+0 ; 0x24 <main+0x24>
22: R_AVR_13_PCREL __divmodhi4
24: 00 97 sbiw r24, 0x00 ; 0
26: 01 f4 brne .+0 ; 0x28 <main+0x28>
26: R_AVR_7_PCREL .text+0x30
28: 80 e0 ldi r24, 0x00 ; 0
28: R_AVR_LO8_LDI .data
2a: 90 e0 ldi r25, 0x00 ; 0
2a: R_AVR_HI8_LDI .data
2c: 00 d0 rcall .+0 ; 0x2e <main+0x2e>
2c: R_AVR_13_PCREL puts
2e: 00 c0 rjmp .+0 ; 0x30 <main+0x30>
2e: R_AVR_13_PCREL .text+0x7e
30: 89 81 ldd r24, Y+1 ; 0x01
32: 9a 81 ldd r25, Y+2 ; 0x02
34: 25 e0 ldi r18, 0x05 ; 5
36: 30 e0 ldi r19, 0x00 ; 0
38: 62 2f mov r22, r18
3a: 73 2f mov r23, r19
3c: 00 d0 rcall .+0 ; 0x3e <main+0x3e>
3c: R_AVR_13_PCREL __divmodhi4
3e: 00 97 sbiw r24, 0x00 ; 0
40: 01 f4 brne .+0 ; 0x42 <main+0x42>
40: R_AVR_7_PCREL .text+0x4a
42: 80 e0 ldi r24, 0x00 ; 0
42: R_AVR_LO8_LDI .data+0x9
44: 90 e0 ldi r25, 0x00 ; 0
44: R_AVR_HI8_LDI .data+0x9
46: 00 d0 rcall .+0 ; 0x48 <main+0x48>
46: R_AVR_13_PCREL puts
48: 00 c0 rjmp .+0 ; 0x4a <main+0x4a>
48: R_AVR_13_PCREL .text+0x7e
4a: 89 81 ldd r24, Y+1 ; 0x01
4c: 9a 81 ldd r25, Y+2 ; 0x02
4e: 23 e0 ldi r18, 0x03 ; 3
50: 30 e0 ldi r19, 0x00 ; 0
52: 62 2f mov r22, r18
54: 73 2f mov r23, r19
56: 00 d0 rcall .+0 ; 0x58 <main+0x58>
56: R_AVR_13_PCREL __divmodhi4
58: 00 97 sbiw r24, 0x00 ; 0
5a: 01 f4 brne .+0 ; 0x5c <main+0x5c>
5a: R_AVR_7_PCREL .text+0x64
5c: 80 e0 ldi r24, 0x00 ; 0
5c: R_AVR_LO8_LDI .data+0xe
5e: 90 e0 ldi r25, 0x00 ; 0
5e: R_AVR_HI8_LDI .data+0xe
60: 00 d0 rcall .+0 ; 0x62 <main+0x62>
60: R_AVR_13_PCREL puts
62: 00 c0 rjmp .+0 ; 0x64 <main+0x64>
62: R_AVR_13_PCREL .text+0x7e
64: 89 81 ldd r24, Y+1 ; 0x01
66: 9a 81 ldd r25, Y+2 ; 0x02
68: 9f 93 push r25
6a: 8f 93 push r24
6c: 80 e0 ldi r24, 0x00 ; 0
6c: R_AVR_LO8_LDI .data+0x13
6e: 90 e0 ldi r25, 0x00 ; 0
6e: R_AVR_HI8_LDI .data+0x13
70: 9f 93 push r25
72: 8f 93 push r24
74: 00 d0 rcall .+0 ; 0x76 <main+0x76>
74: R_AVR_13_PCREL printf
76: 0f 90 pop r0
78: 0f 90 pop r0
7a: 0f 90 pop r0
7c: 0f 90 pop r0
7e: 89 81 ldd r24, Y+1 ; 0x01
80: 9a 81 ldd r25, Y+2 ; 0x02
82: 01 96 adiw r24, 0x01 ; 1
84: 9a 83 std Y+2, r25 ; 0x02
86: 89 83 std Y+1, r24 ; 0x01
88: 89 81 ldd r24, Y+1 ; 0x01
8a: 9a 81 ldd r25, Y+2 ; 0x02
8c: 85 36 cpi r24, 0x65 ; 101
8e: 91 05 cpc r25, r1
90: 04 f0 brlt .+0 ; 0x92 <main+0x92>
90: R_AVR_7_PCREL .text+0x16
92: 0f 90 pop r0
94: 0f 90 pop r0
96: 0f 90 pop r0
98: 0f 90 pop r0
9a: cf 91 pop r28
9c: df 91 pop r29
9e: 08 95 ret
% avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libexecdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=i486-linux-gnu --host=i486-linux-gnu --target=avr
Thread model: single
gcc version 4.3.0 (GCC)
! Optimized
fizzbuzz.o: file format elf32-avr
Disassembly of section .text:
00000000 <main>:
0: af 92 push r10
2: bf 92 push r11
4: cf 92 push r12
6: df 92 push r13
8: ef 92 push r14
a: ff 92 push r15
c: 0f 93 push r16
e: 1f 93 push r17
10: cf 93 push r28
12: df 93 push r29
14: c1 e0 ldi r28, 0x01 ; 1
16: d0 e0 ldi r29, 0x00 ; 0
18: 0f 2e mov r0, r31
1a: f0 e0 ldi r31, 0x00 ; 0
1a: R_AVR_LO8_LDI .data+0x13
1c: cf 2e mov r12, r31
1e: f0 e0 ldi r31, 0x00 ; 0
1e: R_AVR_HI8_LDI .data+0x13
20: df 2e mov r13, r31
22: f0 2d mov r31, r0
24: 0f 2e mov r0, r31
26: f0 e0 ldi r31, 0x00 ; 0
26: R_AVR_LO8_LDI .data+0xe
28: ef 2e mov r14, r31
2a: f0 e0 ldi r31, 0x00 ; 0
2a: R_AVR_HI8_LDI .data+0xe
2c: ff 2e mov r15, r31
2e: f0 2d mov r31, r0
30: 0f 2e mov r0, r31
32: f0 e0 ldi r31, 0x00 ; 0
32: R_AVR_LO8_LDI .data+0x9
34: af 2e mov r10, r31
36: f0 e0 ldi r31, 0x00 ; 0
36: R_AVR_HI8_LDI .data+0x9
38: bf 2e mov r11, r31
3a: f0 2d mov r31, r0
3c: 00 e0 ldi r16, 0x00 ; 0
3c: R_AVR_LO8_LDI .data
3e: 10 e0 ldi r17, 0x00 ; 0
3e: R_AVR_HI8_LDI .data
40: 8c 2f mov r24, r28
42: 9d 2f mov r25, r29
44: 6f e0 ldi r22, 0x0F ; 15
46: 70 e0 ldi r23, 0x00 ; 0
48: 00 d0 rcall .+0 ; 0x4a <main+0x4a>
48: R_AVR_13_PCREL __divmodhi4
4a: 89 2b or r24, r25
4c: 01 f4 brne .+0 ; 0x4e <main+0x4e>
4c: R_AVR_7_PCREL .text+0x56
4e: 80 2f mov r24, r16
50: 91 2f mov r25, r17
52: 00 d0 rcall .+0 ; 0x54 <main+0x54>
52: R_AVR_13_PCREL puts
54: 00 c0 rjmp .+0 ; 0x56 <main+0x56>
54: R_AVR_13_PCREL .text+0x94
56: 8c 2f mov r24, r28
58: 9d 2f mov r25, r29
5a: 65 e0 ldi r22, 0x05 ; 5
5c: 70 e0 ldi r23, 0x00 ; 0
5e: 00 d0 rcall .+0 ; 0x60 <main+0x60>
5e: R_AVR_13_PCREL __divmodhi4
60: 89 2b or r24, r25
62: 01 f4 brne .+0 ; 0x64 <main+0x64>
62: R_AVR_7_PCREL .text+0x6c
64: 8a 2d mov r24, r10
66: 9b 2d mov r25, r11
68: 00 d0 rcall .+0 ; 0x6a <main+0x6a>
68: R_AVR_13_PCREL puts
6a: 00 c0 rjmp .+0 ; 0x6c <main+0x6c>
6a: R_AVR_13_PCREL .text+0x94
6c: 8c 2f mov r24, r28
6e: 9d 2f mov r25, r29
70: 63 e0 ldi r22, 0x03 ; 3
72: 70 e0 ldi r23, 0x00 ; 0
74: 00 d0 rcall .+0 ; 0x76 <main+0x76>
74: R_AVR_13_PCREL __divmodhi4
76: 89 2b or r24, r25
78: 01 f4 brne .+0 ; 0x7a <main+0x7a>
78: R_AVR_7_PCREL .text+0x82
7a: 8e 2d mov r24, r14
7c: 9f 2d mov r25, r15
7e: 00 d0 rcall .+0 ; 0x80 <main+0x80>
7e: R_AVR_13_PCREL puts
80: 00 c0 rjmp .+0 ; 0x82 <main+0x82>
80: R_AVR_13_PCREL .text+0x94
82: df 93 push r29
84: cf 93 push r28
86: df 92 push r13
88: cf 92 push r12
8a: 00 d0 rcall .+0 ; 0x8c <main+0x8c>
8a: R_AVR_13_PCREL printf
8c: 0f 90 pop r0
8e: 0f 90 pop r0
90: 0f 90 pop r0
92: 0f 90 pop r0
94: 21 96 adiw r28, 0x01 ; 1
96: c5 36 cpi r28, 0x65 ; 101
98: d1 05 cpc r29, r1
9a: 01 f4 brne .+0 ; 0x9c <main+0x9c>
9a: R_AVR_7_PCREL .text+0x40
9c: df 91 pop r29
9e: cf 91 pop r28
a0: 1f 91 pop r17
a2: 0f 91 pop r16
a4: ff 90 pop r15
a6: ef 90 pop r14
a8: df 90 pop r13
aa: cf 90 pop r12
ac: bf 90 pop r11
ae: af 90 pop r10
b0: 08 95 ret
! Normal
fizzbuzz.o: file format elf32-avr
Disassembly of section .text:
00000000 <main>:
0: df 93 push r29
2: cf 93 push r28
4: 00 d0 rcall .+0 ; 0x6 <main+0x6>
4: R_AVR_13_PCREL .text+0x6
6: 00 d0 rcall .+0 ; 0x8 <main+0x8>
6: R_AVR_13_PCREL .text+0x8
8: cd b7 in r28, 0x3d ; 61
a: de b7 in r29, 0x3e ; 62
c: 81 e0 ldi r24, 0x01 ; 1
e: 90 e0 ldi r25, 0x00 ; 0
10: 9a 83 std Y+2, r25 ; 0x02
12: 89 83 std Y+1, r24 ; 0x01
14: 00 c0 rjmp .+0 ; 0x16 <main+0x16>
14: R_AVR_13_PCREL .text+0x88
16: 89 81 ldd r24, Y+1 ; 0x01
18: 9a 81 ldd r25, Y+2 ; 0x02
1a: 2f e0 ldi r18, 0x0F ; 15
1c: 30 e0 ldi r19, 0x00 ; 0
1e: 62 2f mov r22, r18
20: 73 2f mov r23, r19
22: 00 d0 rcall .+0 ; 0x24 <main+0x24>
22: R_AVR_13_PCREL __divmodhi4
24: 00 97 sbiw r24, 0x00 ; 0
26: 01 f4 brne .+0 ; 0x28 <main+0x28>
26: R_AVR_7_PCREL .text+0x30
28: 80 e0 ldi r24, 0x00 ; 0
28: R_AVR_LO8_LDI .data
2a: 90 e0 ldi r25, 0x00 ; 0
2a: R_AVR_HI8_LDI .data
2c: 00 d0 rcall .+0 ; 0x2e <main+0x2e>
2c: R_AVR_13_PCREL puts
2e: 00 c0 rjmp .+0 ; 0x30 <main+0x30>
2e: R_AVR_13_PCREL .text+0x7e
30: 89 81 ldd r24, Y+1 ; 0x01
32: 9a 81 ldd r25, Y+2 ; 0x02
34: 25 e0 ldi r18, 0x05 ; 5
36: 30 e0 ldi r19, 0x00 ; 0
38: 62 2f mov r22, r18
3a: 73 2f mov r23, r19
3c: 00 d0 rcall .+0 ; 0x3e <main+0x3e>
3c: R_AVR_13_PCREL __divmodhi4
3e: 00 97 sbiw r24, 0x00 ; 0
40: 01 f4 brne .+0 ; 0x42 <main+0x42>
40: R_AVR_7_PCREL .text+0x4a
42: 80 e0 ldi r24, 0x00 ; 0
42: R_AVR_LO8_LDI .data+0x9
44: 90 e0 ldi r25, 0x00 ; 0
44: R_AVR_HI8_LDI .data+0x9
46: 00 d0 rcall .+0 ; 0x48 <main+0x48>
46: R_AVR_13_PCREL puts
48: 00 c0 rjmp .+0 ; 0x4a <main+0x4a>
48: R_AVR_13_PCREL .text+0x7e
4a: 89 81 ldd r24, Y+1 ; 0x01
4c: 9a 81 ldd r25, Y+2 ; 0x02
4e: 23 e0 ldi r18, 0x03 ; 3
50: 30 e0 ldi r19, 0x00 ; 0
52: 62 2f mov r22, r18
54: 73 2f mov r23, r19
56: 00 d0 rcall .+0 ; 0x58 <main+0x58>
56: R_AVR_13_PCREL __divmodhi4
58: 00 97 sbiw r24, 0x00 ; 0
5a: 01 f4 brne .+0 ; 0x5c <main+0x5c>
5a: R_AVR_7_PCREL .text+0x64
5c: 80 e0 ldi r24, 0x00 ; 0
5c: R_AVR_LO8_LDI .data+0xe
5e: 90 e0 ldi r25, 0x00 ; 0
5e: R_AVR_HI8_LDI .data+0xe
60: 00 d0 rcall .+0 ; 0x62 <main+0x62>
60: R_AVR_13_PCREL puts
62: 00 c0 rjmp .+0 ; 0x64 <main+0x64>
62: R_AVR_13_PCREL .text+0x7e
64: 89 81 ldd r24, Y+1 ; 0x01
66: 9a 81 ldd r25, Y+2 ; 0x02
68: 9f 93 push r25
6a: 8f 93 push r24
6c: 80 e0 ldi r24, 0x00 ; 0
6c: R_AVR_LO8_LDI .data+0x13
6e: 90 e0 ldi r25, 0x00 ; 0
6e: R_AVR_HI8_LDI .data+0x13
70: 9f 93 push r25
72: 8f 93 push r24
74: 00 d0 rcall .+0 ; 0x76 <main+0x76>
74: R_AVR_13_PCREL printf
76: 0f 90 pop r0
78: 0f 90 pop r0
7a: 0f 90 pop r0
7c: 0f 90 pop r0
7e: 89 81 ldd r24, Y+1 ; 0x01
80: 9a 81 ldd r25, Y+2 ; 0x02
82: 01 96 adiw r24, 0x01 ; 1
84: 9a 83 std Y+2, r25 ; 0x02
86: 89 83 std Y+1, r24 ; 0x01
88: 89 81 ldd r24, Y+1 ; 0x01
8a: 9a 81 ldd r25, Y+2 ; 0x02
8c: 85 36 cpi r24, 0x65 ; 101
8e: 91 05 cpc r25, r1
90: 04 f0 brlt .+0 ; 0x92 <main+0x92>
90: R_AVR_7_PCREL .text+0x16
92: 0f 90 pop r0
94: 0f 90 pop r0
96: 0f 90 pop r0
98: 0f 90 pop r0
9a: cf 91 pop r28
9c: df 91 pop r29
9e: 08 95 ret