MASM dla wersji x64 (ml64.exe)
ml64.exe jest assembler, która akceptuje x64 asemblera.Aby uzyskać informacje na temat opcji kompilatora ml64.exe, zobacz Informacje w wierszu polecenia programu ML i ML64.
Wbudowany ASM nie jest obsługiwana dla x64.Użyj intrinsics MORGÓW lub kompilatora (x 64 Intrinsics).
Dwa rozwiązania są oddzielne zestawu z MORGÓW (która w pełni obsługuje x 64) i intrinsics kompilatora.Dodaliśmy wiele intrinsics, aby umożliwić klientom używać funkcji specjalnych instrukcji (np.uprzywilejowane, bit skanowania/badanie, blokujących, etc) w jak najbliżej na różnych platformach sposób.
Dyrektywy szczególne ml64
Ml64.exe za pomocą następujących dyrektyw:
Ponadto PROC dyrektywy został zaktualizowany do użytku z ml64.exe.
32-Bitowy adres trybu (adres rozmiar Override)
Jeśli operand pamięci zawiera 32-bitowe rejestry MORGÓW będzie emitują override rozmiar adresu 0x67.Na przykład poniższe przykłady powodują zastąpienie rozmiar adresu być emitowane:
mov rax, QWORD PTR [ecx]
mov eax, DWORD PTR [ecx*2+r10d]
mov eax, DWORD PTR [ecx*2+r10d+0100h]
prefetch [eax]
movnti rax, QWORD PTR [r8d]
MORGÓW zakłada, 64-bitowe adresowanie jest przeznaczony pojawienie samodzielnie jako operand pamięci przemieszczenie 32-bitowych.Obecnie jest obsługa 32-bitowe adresowanie z tych operandów.
Wreszcie mieszanie rozmiary rejestru w ramach operand pamięci, jak pokazano w poniższym kodzie wygeneruje błąd.
mov eax, DWORD PTR [rcx*2+r10d]
mov eax, DWORD PTR [ecx*2+r10+0100h]