wzr是32位的零寄存器,用于给int清零
xzr是64位的零寄存器,用于给long清零
汇编函数在.h文件中的声明:
void fn1(int *a,int *b);
oc文件中的调用
int a = 11;
long b = 12;
fn1(&a, &b);
NSLog(@"a=%d,b=%ld",a,b);
汇编函数再.s文件中的定义
.text
.global _fn1
//wzr是32位的零寄存器,用于给int清零
//xzr是64位的零寄存器,用于给long清零
_fn1:
str wzr,[x0] //给参数1清零 ,注意参数1虽然是int,但是地址依然是64位的寄存器x0,而不是w0,因为w0是32位的地址不合法
str xzr,[x1] //给参数2清零
ret
执行打印结果:
a=0,b=0