MASM para x64 (ml64.exe)
ml64.exe es el ensamblador que acepta el lenguaje de ensamblado de x64 . Para obtener información sobre las opciones del compilador de ml64.exe, vea Referencia de la línea de comandos de ML y ML64.
El ASM especificado no se admite para x64. Uso MASM o función intrínseca del compilador (x64 Para).
Las dos soluciones alternativas son el ensamblado independiente con MASM (que admite x64 totalmente) y función intrínseca del compilador. Hemos agregado muchos intrínseco para permitir que los clientes hacen uso de instrucciones especial-función (por ejemplo. análisis privilegiado, de bits por prueba, de bloqueo, etc.…) en tan cierre a la interplataforma una manera posible.
directivas de ml64-Specific
Utilice las siguientes directivas con ml64.exe:
Además, la directiva de PROC se actualizó con ml64.exe.
modo de direcciones de 32 bits (invalidación del tamaño de la dirección)
MASM emitirá el reemplazo del tamaño de la dirección 0x67 si un operando de memoria incluye los registros de 32 bits. Por ejemplo, los ejemplos siguientes producen la invalidación del tamaño de dirección que se emitirá:
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 supone que si un desplazamiento de 32 bits solo aparece como operando de memoria, el 64 bit addressing está pensado. Actualmente no hay compatibilidad con el direccionamiento de 32 bits con estos operandos.
Finalmente, mezclar los tamaños de registro dentro de un operando de memoria, como se muestra en el código siguiente, generará un error.
mov eax, DWORD PTR [rcx*2+r10d]
mov eax, DWORD PTR [ecx*2+r10+0100h]