Par example, une multiplication 32 bit retourne son résultat dans EDX:EAX, comment faire pour déplacer EDX:EAX dans RDX en 64 bit étant donné qu'en mode 64 bit, un mov 32 bit fait un zero extend?
Example :
movl $4,%eax
movl $5,%ebx
mul %ebx
- Résultat dans EDX:EAX
- Si je veux mettre le tout dans RDX, ce qui me vient en tête est de faire un shift de edx pour le mettre en
- partie haut de rdx puis de déplacer eax dans la partie basse de rdx soi edx
shlq $32,%rdx
movl %eax,%edx # <<<<<------- problème ici.
- movl fait un zero extend par défault alors la partie haut de RDX est perdu