Sdílet prostřednictvím


x64 Instructions

Většina instrukcí x86 je nadále platná pro x64 v 64bitovém režimu. Některé zřídka používané operace se už v 64bitovém režimu nepodporují, například:

  • binární kódované desetinné aritmetické instrukce: AAA, AAD, AAM, AAS, DAA, DAS

  • BOUND

  • PUSHAD a POPAD

  • většina operací, které se zabývají registry segmentů, jako je PUSH DS a POP DS. (Operace, které používají registry segmentů FS nebo GS, jsou stále platné.)

Instrukční sada x64 obsahuje nedávné dodatky k x86, například SSE 2. Programy kompilované pro platformu x64 mohou tyto pokyny volně používat.

Přenos dat

X64 poskytuje nové varianty instrukce MOV, které mohou zpracovávat 64bitové okamžité konstanty nebo adresy paměti.

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.

X64 také poskytuje novou instrukci pro podepisování 32bitových operandů na 64 bitů.

MOVSXD

r1, r/m

Přesuňte DWORD s rozšířením pro znaménko do QWORD.

Běžné operace MOV do 32bitových subregisterů se automaticky nulou rozšíří na 64 bitů, takže neexistuje žádná instrukce 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

Přesuňte 128bitovou hodnotu (ne nutně zarovnanou) k registraci nebo naopak.

Konverze dat

CDQE

Convert dword (eax) to qword (rax).

CQO

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

Manipulace s řetězci

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.