Будет ли инструкция интерпретировать регистр 31 как нулевой регистр wzr
/ xzr
или указатель стека wsp
/ xsp
, зависит от типа инструкции и не может быть легко предсказуемо. Один и тот же мнемон c может ссылаться на несколько инструкций, некоторые из которых принимают указатель стека в качестве операнда, а другие - нет. Однако в целом все инструкции, которые имеют смысл использовать с указателем стека, имеют форму, в которой они могут использоваться с указателем стека. Ассемблер автоматически подберет для вас подходящую форму. sp
никогда не будет молча принимать значение *1005* или наоборот.
В Справочном руководстве ARM Xn
или Wn
используется для обозначения регистра, где регистр 31 ссылается на ноль регистр. Xn|SP
или Wn|WSP
используется для ссылки на регистр, где регистр 31 ссылается на указатель стека. Подробности см. Во введении к §5 «НАСТРОЙКА ИНСТРУКЦИИ A64».