Udostępnij za pośrednictwem


MORGÓW x 64 (ml64.exe)

ml64.exe jest assembler, która akceptuje x64 asemblera.Aby uzyskać informacje na temat opcji kompilatora ml64.exe, zobacz Odwołania do wiersza polecenia 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]

Zobacz też

Inne zasoby

Makro Microsoft Assembler odniesienia