ZHCADC5A June 2013 – June 2020
对于 MSP430/430X,一个函数最多可以在寄存器中传递四个实参。
在寄存器中传递的实参数量取决于每个实参的大小和类型。实参按照声明的顺序分配给以下相应列表中的第一个可用寄存器:单寄存器、寄存器对或四倍字寄存器(存在以下特殊例外情况)。
对于 MSP430 和 MSP430X,实参寄存器为:R12、R13、R14、R15
CPU 寄存器的大小因架构而异。实参寄存器的使用方式也相应地有所不同。
单个寄存器不能包含多个实参。在寄存器中传递类型小于 int(16 位)的实参时,编译器可能会将其提升为寄存器的大小。TI 编译器会提升此类实参。请注意,如果在堆栈上传递这些实参,则 TI 编译器不会提升这些实参,除非将实参传递给可变实参函数或原型不在范围内(默认实参提升)。当要在寄存器中传递窄值时,调用方负责正确地对其进行符号扩展或零扩展,以填充寄存器宽度。