ZHCADC5A June 2013 – June 2020
类型大于单个寄存器但不大于单个寄存器大小的两倍的实参在寄存器对中传递。编号最低的寄存器保存 LSW(最低有效字)。
对于 MSP430 和 MSP430X,寄存器对不需要对齐,因此 R12:R13、R13:R14 和 R14:R15 是有效寄存器对。最高 32 位的类型在寄存器对中传递。这包括“long int”、“float”以及通过值传递的最多 32 位大小的结构体。
MSP430 和 MSP430X 示例:
C 源代码:
void func1(int a0, long a1, int a2);
int a0, a2;
long a1;
func2(void)
{
func1(a0, a1, a2);
}
编译后的汇编代码:
MOV.W &a0, R12
MOV.W &a1+0,R13
MOV.W &a1+2,R14
MOV.W &a2, R15