//2.1 2020214551-wzy
// c文件 func.c
#include<stdio.h>
int func(int arg1, int arg2, int arg3)
{
return (arg1 + arg2 + arg3) * 600;
}
void main(int argc, char** argv)
{
asm_main();
}
;汇编文件 ASM_main.s
IMPORT func
EXPORT asm_main
AREA ASM_main,CODE,READONLY
asm_main
str lr, [sp, #-4]!
ldr r0,#0x1
ldr r1,#0x2
ldr r2,#0x4
bl func
ldr pc, [sp], #4
end
//2.2
;Single_reg.s
AREA Single,CODE,READONLY
num EQU 8
start
ldr r0,src
ldr r1,dst
ldr r2,num
ldr r3,[r0],#4
str r3,[r1],#4
subs r2,r2,#1
bne start
end
;Multi_reg.s
AREA Multi,CODE,READONLY
start
ldr r0,src
ldr r1,dst
ldmia r0!,{r3-r10}
stmia r1!,{r3-r10}
end