Compartir a través de


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.