在ARM64汇编代码中,寄存器号31何时表示XZR,什么时候表示SP?
[一条指令将寄存器31解释为零寄存器wzr
/ xzr
还是堆栈指针wsp
/ xsp
取决于指令类型,并且不容易预测。相同的助记符可能引用多个指令,其中一些指令接受堆栈指针作为操作数,而其他指令则不接受。但是,一般而言,所有有意义的与堆栈指针一起使用的指令都具有一种可以与堆栈指针一起使用的形式。汇编器会自动为您选择合适的表格。永远不会默默地将sp
表示为xzr
,反之亦然。
在《 ARM参考手册》中,Xn
或Wn
用于表示寄存器,其中寄存器31表示零寄存器。 Xn|SP
或Wn|WSP
用于指代寄存器,其中寄存器31指代堆栈指针。有关详细信息,请参见§5“ A64指令集”的简介。