ZHCADC3B February 2019 – October 2023
类型适合单个 CPU 寄存器的实参在单个 CPU 寄存器中传递。也就是说,最高 16 位的类型在单个寄存器中传递。各种大小的指针类型也在单个寄存器中传递。
指针类型存储为 32 位值,但在地址空间上应将其视为具有 22 位限制。
示例 1:
C 源代码:
void func1(int a0, int a1, int a2, int a3);
int a0, a1, a2, a3;
void func2(void)
{
func1(a0, a1, a2, a3);
}
编译后的汇编代码:
MOVW DP,#a0
MOV AL,@a0
MOV AH,@a1
MOVZ AR4,@a2
MOVZ AR5,@a3
; call instruction here
示例 2:
C 源代码:
void func1(int *a0, int *a1, int *a2, int *a3);
int a0, a1, a2, a3;
void func2(void)
{
func1(&a0, &a1, &a2, &a3);
}
编译后的汇编代码:
MOVL XAR4,#a2
MOVL XAR5,#a1
MOVL *-SP[2],XAR4
MOVL XAR4,#a3
MOVL *-SP[4],XAR4
MOVL XAR4,#a0
; call instruction here