Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

はじめてのひき - 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