Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Résultat de multiplication incompréhensible


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre du Club
    Résultat de multiplication incompréhensible
    Bonjour,

    je ne comprend pas pourquoi on obtient comme résultat 0x0000000000000001 dans le registre rdx pour la multiplication,
    alors que rdx au départ était de 0x000000000000AAAA
    Normalement rdx ne change pas d'après mon cours on a ceci :



    Pourquoi a-t-on cela ? Merci.

    Voici une image :


  2. #2
    Expert éminent
    Il faudrait vraiment que tu lise la doc intel un jour

    Citation Envoyé par lockmanz Voir le message
    Normalement rdx ne change pas d'après mon cours on a ceci :
    Faux , tu lis mal !
    RDX contient EDX et EDX contient DX.

    Maintenant par simple logique si tu multiplie deux nombre 16 bits , ben le résultat risque de faire 32 bits.
    Donc sur un proc 16 bit on a besoin de deux registres 16 bits ici ax et dx.

    Le calcul étant DX:AX =AX*BX donc si on à 0x1111*0x10 on à comme résultat = 0x11110 , plus grand que 16 bits donc on aura AX = 0x1110 et DX = 0x0001

    NT: Faudra dire à ton prof de ne pas utiliser '$' pour indiquer un nombre décimal

  3. #3
    Membre du Club
    ok merci beaucoup de m'avoir aidé c'est beaucoup plus clair