MOV SP, #0x40000020
MIAN:
MOV R1, #3
MOV R2, #5
@调用FUNC子程序
BL FUNC
ADD R3, R1, R2
B STOP
FUNC:@叶子函数
@压栈保护现场
STMFD SP!,{R1,R2}
MOV R1, #10
MOV R2, #20
SUB R3, R2, R1
@出栈恢复现场
LDMFD SP!,{R1,R2}
MOV PC, LR
STOP:
B STOP
MOV SP, #0x40000020
MIAN:
MOV R1, #3
MOV R2, #5
@调用FUNC子程序
BL FUNC1
ADD R3, R1, R2
B STOP
FUNC1:@非叶子函数
@压栈保护现场
STMFD SP!,{R1,R2,LR}
MOV R1, #10
MOV R2, #20
BL FUNC2
SUB R3, R2, R1
@出栈恢复现场
LDMFD SP!,{R1,R2,LR}
MOV PC, LR
FUNC2:
@压栈保护现场
STMFD SP!,{R1,R2}
MOV R1, #8
MOV R2, #10
MUL R3, R2, R1
@出栈恢复现场
LDMFD SP!,{R1,R2}
MOV PC, LR
STOP:
B STOP