Sommaire

Assembleur x64 x64

1. Registres

Dans l’architecture x64, les registres ont une taille de 64 bits. Les registres commencent par un R. Par exemple, la version 64 bits du registre EAX est RAX (même si EAX existe toujours et représente 32 bits). Voici le schéma :

images/p76.png

Il existe, en plus des registres cités dans la section dédiée à l’assembleur x86, de nouveaux registres allant de R8 à R15.

2. Paramètres des fonctions

Nous avons vu que dans l’architecture x86, les paramètres des fonctions étaient passés via la stack et l’instruction PUSH. En 64 bits, le passage des arguments est différent :

  • le premier argument est passé via le registre RCX ;

  • le second argument est passé via le registre RDX ;

  • le troisième argument est passé via le registre R8 ;

  • le quatrième argument est passé via le registre R9 ;

  • la suite des arguments (s’il y en a) est passée via la stack comme pour l’architecture x86.