dans l'assembleur en ligne x86 je peux écrire quelque chose comme ceci:ARM assemblage en ligne - spécifier registre individuel comme une contrainte
asm ("cpuid"
: "=a" (_eax),
"=b" (_ebx),
"=c" (_ecx),
"=d" (_edx)
: "a" (op));
donc dans les contraintes de matchin au lieu d'écrire juste « = r » et laisser le compilateur a choisi le registre , Je peux dire quel registre particulier je veux utiliser (= par exemple pour utiliser% eax)
comment puis-je faire cela pour l'assemblage ARM? le livre de cuisine d'assemblage ARM GCC http://www.ethernut.de/en/documents/arm-inline-asm.html états que je peux par exemple utiliser les contraintes « r » pour l'un des registres généraux pour l'un des virgule flottante VFP R0-R15 « w » registres S0-S31
mais comment puis-je contraindre un opérande par exemple exactement à s1? ou à un registre général à usage particulier?
merci!
Quel problème serait-il résoudre sur ARM de savoir exactement quel registre est placé un opérande spécifique? Quelles instructions sur les registres ARM _implicitly_ modify (autres que les opérations de chargement/stockage pré/post-incrément/décrément, pour lesquelles des contraintes spécifiques existent)? Dans cet aspect, ARM et x86 sont assez différents ... ce qui est nécessaire sur x86 n'est pas sur ARM. –
@FrankH. Les appels système? C'est en fait comme ça que j'ai trouvé cette question. – Duc