Compartilhar via


MASM para x64 (ml64.exe)

ml64.exe é o montador que aceita x64 linguagem assembly.Para obter informações sobre opções do compilador ml64.exe, consulte Referência de linha de comando ML e ML64.

ASM in-line não há suporte para x64.Use intrínsecos MASM ou compilador (x 64 intrínsecos).

As duas soluções alternativas são um conjunto separado com MASM (que suporta totalmente o x64) e intrínsecos do compilador.Adicionamos muitas intrínsecos para permitir que os clientes façam usar instruções especiais-função (ex.:privilegiado, verificação e teste de bit, sincronizadas, etc …) em como fechar para várias plataformas maneira possível.

Diretivas específicas de ml64

Use as seguintes diretivas com ml64.exe:

Além disso, o PROC diretiva foi atualizada para uso com o ml64.exe.

Modo de endereço de 32 bits (substituição de tamanho de endereço)

MASM emitirá a substituição de tamanho do endereço 0x67, se um operando de memória inclui registros de 32 bits.Por exemplo, os exemplos a seguir fazem a substituição de tamanho do endereço a ser emitido:

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]

MASM pressupõe que se um deslocamento de 32 bits aparecerá sozinho, como um operando de memória, o endereçamento de 64 bits destina-se.Atualmente, não há nenhum suporte para endereçamento de 32 bits com tais operandos.

Finalmente, a combinação de tamanhos de registro dentro de um operando de memória, conforme demonstrado no código a seguir, irá gerar um erro.

mov eax, DWORD PTR [rcx*2+r10d]
mov eax, DWORD PTR [ecx*2+r10+0100h]

Consulte também

Outros recursos

Referência do Microsoft Macro Assembler