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]