myfunc PUSH {LR} ; store old return address onto the stack BL myfunc ; call myfunc again / another procedure POP {LR} ; restore old return address from stack BX LR ; return from myfunc