Delen via


x64 Instructions

De meeste x86-instructies blijven geldig voor x64 in de 64-bits modus. Sommige zelden gebruikte bewerkingen worden niet meer ondersteund in de 64-bits modus, zoals:

  • binaire, decimale rekenkundige instructies: AAA, AAD, AAM, AAS, DAA, DAS

  • BOUND

  • PUSHAD en POPAD

  • de meeste bewerkingen die betrekking hebben op segmentregisters, zoals PUSH DS en POP DS. (Bewerkingen die gebruikmaken van de FS- of GS-segmentregisters zijn nog steeds geldig.)

De x64-instructieset bevat recente toevoegingen aan de x86, zoals SSE 2. Programma's die zijn gecompileerd voor x64 kunnen deze instructies vrijelijk gebruiken.

Gegevensoverdracht

De x64 biedt nieuwe varianten van de MOV-instructie die 64-bits directe constanten of geheugenadressen kan verwerken.

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.

De x64 biedt ook een nieuwe instructie voor het uitbreken van 32-bits operanden tot 64 bits.

MOVSXD

r1, r/m

Verplaats DWORD met de tekenextensie naar QWORD.

Gewone MOV-bewerkingen in 32-bits subregisters worden automatisch uitgebreid naar 64 bits, dus er is geen MOVZXD-instructie.

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

Verplaats de 128-bits waarde (niet noodzakelijkerwijs uitgelijnd) om te registreren of omgekeerd.

Gegevensconversie

CDQE

Convert dword (eax) to qword (rax).

CQO

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

Tekenreeksmanipulatie

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.