Il est pas comme vous devez écrire réellement "m" après le nom du registre, R m est juste un sténo pour R0, R1, ... R15 ; en fait, le "m" est en italique, pour montrer qu'il est juste un espace réservé pour un nombre (et in other pages J'ai effectivement vu R n, ce qui est probablement plus clair pour qui comme moi est utilisé pour x86, où rm signifie habituellement "registre ou opérande mémoire").
Votre exemple sera en fait simplement
msr cpsr,r0
- Cela ligne de principe devrait être l'idée de cette convention typographique; Pourtant, dans toutes les références
msr
j'ai trouvé que PC (R15) est explicitement exclu dans certaines remarques, et aussi dans certains modèles SP (R13). En général R13-15 sont quelque peu spéciales, et la documentation dit même que R15 is not really considered a general-purpose register.
Alors qu'est-ce qui vous fait interpréter Rm dans la documentation comme signifiant 'R0m' plutôt que simplement' R0'? 'R' signifie un registre, le * m * n'est pas littéral; il identifie quel registre - 0 à 12. Si vous l'aviez essayé, vous constateriez que le code ne serait pas assemblé - le suffixe * m * est invalide, donc la question n'a aucun sens. – Clifford
notez comment la syntaxe add affiche Rd, Rn, shifter operand? Ce ne sont que r0-r15, mais vous devez distinguer les deux registres dans l'instruction. Ainsi, lorsque vous regardez le code machine ci-dessus, vous pouvez placer le modèle de bits correct pour ce registre dans l'instruction. –