はじめてのひき - FizzBuzzAsm_arm Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
% arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
fizzbuzz.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <main>:
0: e92d4ff8 push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
4: e3a04001 mov r4, #1 ; 0x1
8: e59f50a8 ldr r5, [pc, #168] ; b8 <main+0xb8>
c: e59f60a8 ldr r6, [pc, #168] ; bc <main+0xbc>
10: e59f70a8 ldr r7, [pc, #168] ; c0 <main+0xc0>
14: e59f90a8 ldr r9, [pc, #168] ; c4 <main+0xc4>
18: e59fa0a8 ldr sl, [pc, #168] ; c8 <main+0xc8>
1c: e59fb0a8 ldr fp, [pc, #168] ; cc <main+0xcc>
20: e59f80a8 ldr r8, [pc, #168] ; d0 <main+0xd0>
24: e0c32495 smull r2, r3, r5, r4
28: e0833004 add r3, r3, r4
2c: e1a02fc4 asr r2, r4, #31
30: e06221c3 rsb r2, r2, r3, asr #3
34: e1a03202 lsl r3, r2, #4
38: e0623003 rsb r3, r2, r3
3c: e1540003 cmp r4, r3
40: 1a000002 bne 50 <main+0x50>
44: e1a00008 mov r0, r8
48: ebfffffe bl 0 <puts>
48: R_ARM_CALL puts
4c: ea000015 b a8 <main+0xa8>
50: e0c32496 smull r2, r3, r6, r4
54: e1a02fc4 asr r2, r4, #31
58: e06220c3 rsb r2, r2, r3, asr #1
5c: e1a03102 lsl r3, r2, #2
60: e0833002 add r3, r3, r2
64: e1540003 cmp r4, r3
68: 1a000002 bne 78 <main+0x78>
6c: e1a0000b mov r0, fp
70: ebfffffe bl 0 <puts>
70: R_ARM_CALL puts
74: ea00000b b a8 <main+0xa8>
78: e0c23497 smull r3, r2, r7, r4
7c: e0422fc4 sub r2, r2, r4, asr #31
80: e1a03082 lsl r3, r2, #1
84: e0833002 add r3, r3, r2
88: e1540003 cmp r4, r3
8c: 1a000002 bne 9c <main+0x9c>
90: e1a0000a mov r0, sl
94: ebfffffe bl 0 <puts>
94: R_ARM_CALL puts
98: ea000002 b a8 <main+0xa8>
9c: e1a00009 mov r0, r9
a0: e1a01004 mov r1, r4
a4: ebfffffe bl 0 <printf>
a4: R_ARM_CALL printf
a8: e2844001 add r4, r4, #1 ; 0x1
ac: e3540065 cmp r4, #101 ; 0x65
b0: 1affffdb bne 24 <main+0x24>
b4: e8bd8ff8 pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
b8: 88888889 .word 0x88888889
bc: 66666667 .word 0x66666667
c0: 55555556 .word 0x55555556
c4: 0000001c .word 0x0000001c
c4: R_ARM_ABS32 .rodata.str1.4
c8: 00000014 .word 0x00000014
c8: R_ARM_ABS32 .rodata.str1.4
cc: 0000000c .word 0x0000000c
cc: R_ARM_ABS32 .rodata.str1.4
d0: 00000000 .word 0x00000000
d0: R_ARM_ABS32 .rodata.str1.4
fizzbuzz.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <main>:
0: e92d4800 push {fp, lr}
4: e28db004 add fp, sp, #4 ; 0x4
8: e24dd018 sub sp, sp, #24 ; 0x18
c: e3a03001 mov r3, #1 ; 0x1
10: e50b3008 str r3, [fp, #-8]
14: ea00003e b 114 <main+0x114>
18: e51b2008 ldr r2, [fp, #-8]
1c: e59f3104 ldr r3, [pc, #260] ; 128 <main+0x128>
20: e0c30392 smull r0, r3, r2, r3
24: e0833002 add r3, r3, r2
28: e1a011c3 asr r1, r3, #3
2c: e1a03fc2 asr r3, r2, #31
30: e0633001 rsb r3, r3, r1
34: e50b3018 str r3, [fp, #-24]
38: e51b3018 ldr r3, [fp, #-24]
3c: e1a03203 lsl r3, r3, #4
40: e51b1018 ldr r1, [fp, #-24]
44: e0613003 rsb r3, r1, r3
48: e0633002 rsb r3, r3, r2
4c: e50b3018 str r3, [fp, #-24]
50: e51b2018 ldr r2, [fp, #-24]
54: e3520000 cmp r2, #0 ; 0x0
58: 1a000002 bne 68 <main+0x68>
5c: e59f00c8 ldr r0, [pc, #200] ; 12c <main+0x12c>
60: ebfffffe bl 0 <puts>
60: R_ARM_CALL puts
64: ea000027 b 108 <main+0x108>
68: e51b1008 ldr r1, [fp, #-8]
6c: e59f30bc ldr r3, [pc, #188] ; 130 <main+0x130>
70: e0c30391 smull r0, r3, r1, r3
74: e1a020c3 asr r2, r3, #1
78: e1a03fc1 asr r3, r1, #31
7c: e0633002 rsb r3, r3, r2
80: e50b3014 str r3, [fp, #-20]
84: e51b3014 ldr r3, [fp, #-20]
88: e1a03103 lsl r3, r3, #2
8c: e51b2014 ldr r2, [fp, #-20]
90: e0833002 add r3, r3, r2
94: e0633001 rsb r3, r3, r1
98: e50b3014 str r3, [fp, #-20]
9c: e51b3014 ldr r3, [fp, #-20]
a0: e3530000 cmp r3, #0 ; 0x0
a4: 1a000002 bne b4 <main+0xb4>
a8: e59f0084 ldr r0, [pc, #132] ; 134 <main+0x134>
ac: ebfffffe bl 0 <puts>
ac: R_ARM_CALL puts
b0: ea000014 b 108 <main+0x108>
b4: e51b2008 ldr r2, [fp, #-8]
b8: e59f3078 ldr r3, [pc, #120] ; 138 <main+0x138>
bc: e0c10293 smull r0, r1, r3, r2
c0: e1a03fc2 asr r3, r2, #31
c4: e0633001 rsb r3, r3, r1
c8: e50b3010 str r3, [fp, #-16]
cc: e51b3010 ldr r3, [fp, #-16]
d0: e1a03083 lsl r3, r3, #1
d4: e51b1010 ldr r1, [fp, #-16]
d8: e0833001 add r3, r3, r1
dc: e0633002 rsb r3, r3, r2
e0: e50b3010 str r3, [fp, #-16]
e4: e51b2010 ldr r2, [fp, #-16]
e8: e3520000 cmp r2, #0 ; 0x0
ec: 1a000002 bne fc <main+0xfc>
f0: e59f0044 ldr r0, [pc, #68] ; 13c <main+0x13c>
f4: ebfffffe bl 0 <puts>
f4: R_ARM_CALL puts
f8: ea000002 b 108 <main+0x108>
fc: e59f003c ldr r0, [pc, #60] ; 140 <main+0x140>
100: e51b1008 ldr r1, [fp, #-8]
104: ebfffffe bl 0 <printf>
104: R_ARM_CALL printf
108: e51b3008 ldr r3, [fp, #-8]
10c: e2833001 add r3, r3, #1 ; 0x1
110: e50b3008 str r3, [fp, #-8]
114: e51b3008 ldr r3, [fp, #-8]
118: e3530064 cmp r3, #100 ; 0x64
11c: daffffbd ble 18 <main+0x18>
120: e24bd004 sub sp, fp, #4 ; 0x4
124: e8bd8800 pop {fp, pc}
128: 88888889 .word 0x88888889
12c: 00000000 .word 0x00000000
12c: R_ARM_ABS32 .rodata
130: 66666667 .word 0x66666667
134: 0000000c .word 0x0000000c
134: R_ARM_ABS32 .rodata
138: 55555556 .word 0x55555556
13c: 00000014 .word 0x00000014
13c: R_ARM_ABS32 .rodata
140: 0000001c .word 0x0000001c
140: R_ARM_ABS32 .rodata