Utilisation des registres

Voir le sujet précédent Voir le sujet suivant Aller en bas

Utilisation des registres

Message par Admin le Mar 29 Nov - 20:54

En 64 bits, nous disposons de 15 registres d'usage courant de 64 bits (8octets) et des registres d'usage particulier.
rax peut servir à tout et est utilisé pour le code retour des fonctions de l'API.
rbx peut servir à tout et son état nest toujours conservé lors de l'appel des fonctions.
rcx et rdx servent pour la transmission des 2 premiers paramètres des fonctions
rsi et rdi servent pour les manipulations des données et peuvent évolués lors de l'appel des fonctions
rsp et rpb sont les registres de piles.
R8 et R9  servent pour la transmission des 3 et 4ième paramètre des fonctions
R10 et R11 ne sont pas conservés lors de l'appel de fonction
R12,R13,R14 et R15 sont conservés lors de l'appel des fonctions et donc peuvent servir pour conserver des données tout le long d'un programme.

Donc si vous utilisez les registres rax,rcx,rdx,rsi,rdi,r8,r9,R10 et r11, il faudra les sauvegarder avant un appel de fonction.
(attention en 64 bits, il n'y a pas d'instruction de sauvegarde de tous les registres (comme pusha en 32bits).

Le registre des drapeaux (flags) s'appelle Rflag.

Pour plus de détail voir :
avatar
Admin
Admin

Messages : 37
Date d'inscription : 28/11/2016

Voir le profil de l'utilisateur http://assembleur64.forumactif.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum