Computer engineering
AREA my_fancy_asm_code, CODE, READONLY EXPORT aTask1 EXPORT aTask2 EXPORT aTask3 EXPORT aTask4 ALIGN ; extern void aTask1(int32_t *arr1, int32_t *arr2, int32_t *arr3, uint32_t M); aTask1 PROC PUSH {r4-r6, lr} aTask1_end POP {r4-r6, pc} ENDP ; extern void aTask2(int32_t *arr1, int32_t *arr2, int32_t *arr3, uint32_t M_n); ; M_n = M & (n << 16) aTask2 PROC PUSH {r4-r7, lr} aTask2_end POP {r4-r7, pc} ENDP ; extern void aTask3(int32_t *arr1, int32_t *arr2, int32_t *arr3, uint32_t M_n); ; M_n = M & (n << 16) aTask3 PROC PUSH {r5-r7, lr} aTask3_end POP {r5-r7, pc} ENDP ; extern void aTask3(int32_t *arr1, int32_t *arr2, int32_t *arr3, uint32_t M_n); ; M_n = M & (n << 16) aTask4 PROC PUSH {r4-r7, lr} aTask4_end POP {r4-r7, pc} ENDP END