.text .align 2 .global findMax .syntax unified .arm .fpu vfp .type findMax, %function findMax: str fp, [sp, #-4]! add fp, sp, #0 sub sp, sp, #20 str r0, [fp, #-16] ldr r3, [fp, #-16] ldr r3, [r3] str r3, [fp, #-8] mov r3, #1 str r3, [fp, #-12] b .L2 .L4: ldr r3, [fp, #-12] lsl r3, r3, #2 ldr r2, [fp, #-16] add r3, r2, r3 ldr r2, [r3] ldr r3, [fp, #-8] cmp r2, r3 ble .L3 ldr r3, [fp, #-12] lsl r3, r3, #2 ldr r2, [fp, #-16] add r3, r2, r3 ldr r3, [r3] str r3, [fp, #-8] .L3: ldr r3, [fp, #-12] add r3, r3, #1 str r3, [fp, #-12] .L2: ldr r3, [fp, #-12] cmp r3, #9 ble .L4 ldr r3, [fp, #-8] mov r0, r3 add sp, fp, #0 @ sp needed ldr fp, [sp], #4 bx lr .size findMax, .-findMax .section .rodata .align 2 .LC0: .ascii "%d\000" .text .align 2 .global main .syntax unified .arm .fpu vfp .type main, %function main: @ args = 0, pretend = 0, frame = 48 @ frame_needed = 1, uses_anonymous_args = 0 push {fp, lr} add fp, sp, #4 sub sp, sp, #48 mov r3, #0 str r3, [fp, #-8] b .L7 .L8: sub r2, fp, #48 ldr r3, [fp, #-8] lsl r3, r3, #2 add r3, r2, r3 mov r1, r3 ldr r0, .L10 bl __isoc99_scanf ldr r3, [fp, #-8] add r3, r3, #1 str r3, [fp, #-8] .L7: ldr r3, [fp, #-8] cmp r3, #9 ble .L8 sub r3, fp, #48 mov r0, r3 bl findMax mov r3, r0 mov r1, r3 ldr r0, .L10 bl printf mov r3, #0 mov r0, r3 sub sp, fp, #4 @ sp needed pop {fp, pc} .L11: .align 2 .L10: .word .LC0 .size main, .-main .ident "GCC: (Raspbian 6.3.0-18+rpi1) 6.3.0 20170516" .section .note.GNU-stack,"",%progbits