x64-Anweisungen
Die meisten x86-Anweisungen sind weiterhin für x64 im 64-Bit-Modus gültig. Einige selten verwendete Vorgänge werden im 64-Bit-Modus nicht mehr unterstützt, z. B.:
binärcodierte Dezimalarithmetikanweisungen: AAA, AAD, AAM, AAS, DAA, DAS
GEBUNDEN
PUSHAD und POPAD
die meisten Vorgänge, die Segmentregister behandelten, z. B. PUSH DS und POP DS. (Vorgänge, die die FS- oder GS-Segmentregister verwenden, sind weiterhin gültig.)
Der x64-Befehlssatz enthält aktuelle Ergänzungen zum x86, z. B. SSE 2. Programme, die für x64 kompiliert wurden, können diese Anweisungen frei verwenden.
Datenübertragung
Der x64 bietet neue Varianten der MOV-Anweisung, die 64-Bit-Sofortkonstanten oder Speicheradressen verarbeiten können.
MOV |
r,#n |
r = #n |
MOV |
rax, m |
Verschieben Sie Inhalte an der 64-Bit-Adresse nach rax. |
MOV |
m, rax |
Verschieben Sie den Inhalt von rax in eine 64-Bit-Adresse. |
Der x64 bietet auch eine neue Anweisung zum Signieren von 32-Bit-Operanden auf 64 Bit.
MOVSXD |
r1, r/m |
Verschieben Sie DWORD mit der Zeichenerweiterung nach QWORD. |
Normale MOV-Vorgänge in 32-Bit-Unterregistern erstrecken sich automatisch auf 64 Bit, sodass es keine MOVZXD-Anweisung gibt.
Zwei SSE-Anweisungen können verwendet werden, um 128-Bit-Werte (z. B. GUIDs) aus dem Arbeitsspeicher in ein xmmn-Register zu verschieben oder umgekehrt.
MOVDQA |
r1/m, r2/m |
Verschieben Sie den 128-Bit-Wert in xmmn Register oder umgekehrt. |
MOVDQU |
r1/m, r2/m |
Verschieben Sie den 128-Bit-Wert (nicht unbedingt ausgerichtet) in die Registrierung oder umgekehrt. |
Datenkonvertierung
CDQE |
Konvertieren Sie dword (eax) in qword (rax). |
CQO |
konvertieren Sie qword (rax) in oword (rdx:rax). |
Zeichenfolgenbearbeitung
MOVSQ |
Verschieben Sie qword von rsi zu rdi. |
CMPSQ |
Vergleichen Sie qword at rsi mit rdi. |
SCASQ |
Überprüfen Sie qword bei rdi. Vergleicht qword at rdi mit rax. |
LODSQ |
Laden Sie qword aus rsi in rax. |
STOSQ |
Speichern Sie qword in rdi aus rax. |