/* -------------------------------------------------- Skeleton file to teach parameter passing with registers parameter passing with stack return value local variables with registers local variables with stack -------------------------------------------------- */ .global main, Stop, CodeEnd, DataStart, DataEnd .global A, B, C /* -------------------------------------------------- Begin of the program instructions -------------------------------------------------- */ .text main: mov r0, #1111 bl A // Call leaf function A // When A returns, you will see the return value in r0 nop // in main nop // in main Stop: nop /* =============================== Function A( ) =============================== */ A: nop // in A() nop // in A() mov r0, #7777 // r0 = return value mov pc, lr /* =============================== Function B( ) =============================== */ B: nop // in B() nop // in B() mov r0, #8888 // r0 = return value mov pc, lr /* =============================== Function C( ) =============================== */ C: nop // in C() nop // in C() mov r0, #9999 // r0 = return value mov pc, lr CodeEnd: nop /* -------------------------------------------------- Begin of the permanent program variables -------------------------------------------------- */ .data DataStart: DataEnd: .end