IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > F.A.Q. Assembleur x86 / 64 > Généralités
        Où trouver de la documentation pour la programmation x64 en Assembleur ?
        J'ai un processeur 64 bits, puis-je exécuter des programmes ou binaires 64 bits ?
        Y a-t-il de nouvelles instructions avec les processeurs x86 64 bits ?
        Les registres généraux sont-ils toujours les mêmes que sous 32 bits ?
        Quels sont les nouveaux registres généraux des processeurs x86 64 bits ?
        Quels sont les nouveaux registres autres que les registres généraux ?

rechercher
precedent    sommaire    suivant    telechargermiroir


Où trouver de la documentation pour la programmation x64 en Assembleur ?
auteur : Neitsa

J'ai un processeur 64 bits, puis-je exécuter des programmes ou binaires 64 bits ?
auteur : Neitsa
Bien sûr, mais à une seule condition : si votre système d'exploitation est un système 64 bits !
Les processeurs 64 bits peuvent exécuter du code 16, 32 ou 64 bits mais c'est le système d'exploitation qui détermine dans quel mode d'exécution il peut exécuter du code. Cela implique qu'un système d'exploitation 32 bits fonctionnant sur un processeur 64 bits ne pourra pas exécuter du code 64 bits.

N.B : Windows Vista 64 bits n'exécute plus les programmes 16 bits. Les programmes 32 bits, eux, sont exécutés au travers de WOW64.


Y a-t-il de nouvelles instructions avec les processeurs x86 64 bits ?
auteur : Neitsa
Une seule nouvelle instruction d'ordre "général" a fait son apparition : MOVSXD. Certaines des instructions sont simplement étendues pour manipuler des données 64 bits tandis que d'autres ne sont plus disponibles dans le mode 64 bits.
Les processeurs de dernières générations apportent toutefois des instructions spécialisées, notamment au travers des jeux d'instructions SSE3 et SSSE3 et des instructions de virtualisation, mais ces instructions ne sont pas réservées spécifiquement au mode d'exécution 64 bits.


Les registres généraux sont-ils toujours les mêmes que sous 32 bits ?
auteur : Neitsa
On trouve toujours les mêmes registres généraux que sous 32 et 16 bits. Toutefois les registres ont été étendus à 64 bits.

Pour prendre un exemple avec EAX (qui, étendu à 64 bits, devient RAX) :
En mode 64 bits, on peut toujours accéder à :

  • EAX : partie basse 32 bits (bits 0 à 31) de RAX.
  • AX : partie basse 16 bits (bits 0 à 15) de EAX.
  • AH : partie haute 8 bits (bits 8 à 15) de AX.
  • AL : partie basse 8 bits (bit 0 à 7) de AX.
On ne peut ni accéder directement à la partie haute 16 bits de EAX, ni à la partie haute 32 bits de RAX.


Quels sont les nouveaux registres généraux des processeurs x86 64 bits ?
auteur : Neitsa
Outre les registres 32 bits étendus à 64 bits, on trouve 8 nouveaux registres généraux. Les nouveaux registres généraux 64 bits, au nombre de 8, sont nommés de R8 à R15 et sont utilisables tout comme les autres registres généraux. On dénombre donc à présent les registres suivants :

  • 16 registres 8 bits « bas » : AL, BL, CL, DL, SIL, DIL, BPL, SPL, R8B, R9B, R10B, R11B, R12B, R13B, R14B, R15B. [Avec ‘B' pour BYTE]. On notera ici que les parties 8 bits de RSI (SIL), RDI (DIL), RBP (BPL) et RSP (SPL) sont désormais accessibles directement (ce qui n'était pas le cas en 16 ou 32 bits où, par exemple, la partie 8 bits du registre ESI n'était pas accessible directement).
  • 4 registres 8 bits « haut » : AH, BH, CH, DH (utilisable seulement dans un cas bien précis : quand un préfixe REX est présent).
  • 16 registres 16 bits : AX, BX, CX, DX, DI, SI, BP, SP, R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W. [Avec ‘W' pour WORD]
  • 16 registres 32 bits : EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D, R9D, R10D, R11D, R12D, R13D, R14D, R15D. [Avec ‘D' pour DWORD].
  • 16 registres 64 bits : RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, R8, R9, R10, R11, R12, R13, R14, R15.

Quels sont les nouveaux registres autres que les registres généraux ?
auteur : Neitsa
On notera l'apparition ou l'extension des registres suivants :

  • 8 nouveaux registres SSE : XMM8 à XMM15.
  • Le passage d'EFLAG (registre de drapeaux) en 64 bits, qui devient : RFLAG.
  • Le pointeur d'instruction (EIP en 32 bits) passe lui aussi en 64 bits et devient : RIP.
  • 8 nouveaux registres système de contrôle : Cr8 à Cr15.
  • 8 nouveaux registres de déboguage : Dr8 à Dr15.

rechercher
precedent    sommaire    suivant    telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.