Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Большинство инструкций x86 продолжают быть допустимыми для x64 в 64-разрядном режиме. Некоторые редко используемые операции больше не поддерживаются в 64-разрядном режиме, например:
арифметические инструкции с двоичным кодом: AAA, AAD, AAM, AAS, DAA, DAS
BOUND
PUSHAD и POPAD
большинство операций, которые касаются регистров сегментов, таких как PUSH DS и POP DS. (Операции, использующие регистры сегментов FS или GS, по-прежнему допустимы.)
Набор инструкций x64 включает последние дополнения к x86, например SSE 2. Программы, скомпилированные для x64, могут свободно использовать эти инструкции.
Передача данных
X64 предоставляет новые варианты инструкции MOV, которая может обрабатывать 64-разрядные константы или адреса памяти.
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 также предоставляет новую инструкцию для подписывания 32-разрядных операндов до 64-разрядных.
MOVSXD |
r1, r/m |
Переместите DWORD с расширением знака в QWORD. |
Обычные операции MOV в 32-разрядные подрегистры автоматически расширяются до 64 бит, поэтому инструкции 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 |
Переместите 128-разрядное значение (не обязательно выровнено) для регистрации или наоборот. |
Преобразование данных
CDQE |
Convert dword (eax) to qword (rax). |
CQO |
convert qword (rax) to oword (rdx:rax). |
Обработка строк
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. |