Compartir a través de


x64 Instructions

La mayoría de las instrucciones x86 siguen siendo válidas para x64 en modo de 64 bits. Algunas operaciones que raramente se usan ya no se admiten en modo de 64 bits, como:

  • Instrucciones aritméticas decimales codificadas binarias: AAA, AAD, AAM, AAS, DAA, DAS

  • BOUND

  • 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

Move contents at 64-bit address to rax.

MOV

m, rax

Move contents of rax to 64-bit address.

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.

Two SSE instructions can be used to move 128-bit values (such as GUIDs) from memory to an xmmn register or vice versa.

MOVDQA

r1/m, r2/m

Move 128-bit aligned value to xmmn register, or vice versa.

MOVDQU

r1/m, r2/m

Mueva el valor de 128 bits (no necesariamente alineado) para registrarse o viceversa.

Conversión de datos

CDQE

Convert dword (eax) to qword (rax).

CQO

convert qword (rax) to oword (rdx:rax).

Manipulación de cadenas

MOVSQ

Move qword from rsi to rdi.

CMPSQ

Compare qword at rsi with rdi.

SCASQ

Scan qword at rdi. Compares qword at rdi to rax.

LODSQ

Load qword from rsi into rax.

STOSQ

Store qword to rdi from rax.