@ calls.s

/* a function which multiplies two numbers */
.global	multiply
multiply:
    mul r0, r1, r0
    mov pc, lr

/*  a function which squares its argument */
.global square
square:
    sub sp, sp, #4
    str lr, [sp, #0]

    @ call multiply
    mov r1, r0
    bl multiply

    ldr lr, [sp, #0]
    add sp, sp, #4

    @ return
    mov pc, lr