2.4 子程序结果返回规则
1、结果为一个32位的整数时或小于32位的整数值以保留符号和符号的方式扩展为32位值的范围,可以通过寄存器R0返回。
2、结果为一个64位整数时,一个64位整数值被视为两个32位整数值,可以通过R0和R1返回,依此类推。
3、对于位数更多的结果,需要通过调用内存来传递,任何其它类型的值(例如结构化值)将转换为32位整数字序列,通过将其复制到连续的内存字中。
根据上面简单的测试可以看出:MOVS r2,#0x03
MOVS r1,#0x02
MOVS r0,#0x01
通过寄存器R0~R3来传递参数:
ADDS r0,r3,r1
ADDS r0,r0,r2
通过寄存器R0返回。
|