Instrucciones de x64
La mayoría de las instrucciones x86 siguen siendo válidas para x64 en modo de 64 bits. Algunas operaciones que se usan con poca frecuencia ya no se admiten en modo de 64 bits, como:
Instrucciones aritméticas decimales codificadas binarias: AAA, AAD, AAM, AAS, DAA, DAS
LÍMITE
PUSHAD y POPAD
la mayoría de las operaciones que tratan los registros de segmentos, como PUSH DS y POP DS. (Las operaciones que usan los registros de segmento FS o GS siguen siendo válidas).
El conjunto de instrucciones x64 incluye adiciones recientes a x86, como SSE 2. Los programas compilados para x64 pueden usar libremente estas instrucciones.
Transferencia de datos
El x64 proporciona nuevas variantes de la instrucción MOV que pueden controlar constantes o direcciones de memoria inmediatas de 64 bits.
MOV |
r,#n |
r = #n |
MOV |
rax, m |
Mueva el contenido a la dirección de 64 bits a rax. |
MOV |
m, rax |
Mueva el contenido de rax a la dirección de 64 bits. |
El x64 también proporciona una nueva instrucción para extender operandos de 32 bits a 64 bits.
MOVSXD |
r1, r/m |
Mueva DWORD con la extensión de signo a QWORD. |
Las operaciones MOV normales en los hexadecimales de 32 bits se extienden automáticamente a 64 bits, por lo que no hay ninguna instrucción MOVZXD.
Se pueden usar dos instrucciones SSE para mover valores de 128 bits (como GUID) de memoria a un registro xmmn o viceversa.
MOVDQA |
r1/m, r2/m |
Mueva el valor alineado de 128 bits al registro xmmn , o viceversa. |
MOVDQU |
r1/m, r2/m |
Mueva el valor de 128 bits (no necesariamente alineado) para registrarse o viceversa. |
Conversión de datos
CDQE |
Convierta dword (eax) en qword (rax). |
CQO |
convierta qword (rax) en oword (rdx:rax). |
Manipulación de cadenas
MOVSQ |
Mueva qword de rsi a rdi. |
CMPSQ |
Compare qword en rsi con rdi. |
SCASQ |
Escanear qword en rdi. Compara qword en rdi con rax. |
LODSQ |
Cargue qword de rsi en rax. |
STOSQ |
Almacene qword en rdi de rax. |