Introducción al compilador MASM para compiladores en lenguaje ensamblador
MASM es un compilador ensamblador lanzado por Microsoft. Su versión se ha actualizado muchas veces de menor a mayor (un problema común de Microsoft, hay tantos parches de actualización). Además de las correcciones de errores de rutina, cada actualización agregó algunas características nuevas, de modo que al final la sintaxis y las funciones de la versión superior y la versión inferior eran muy diferentes, y la compatibilidad con versiones anteriores no era buena. Aunque una versión inferior de MASM no puede compilar una versión superior del programa fuente, es posible que una versión superior de MASM tampoco pueda compilar la versión inferior del programa fuente normalmente. Por ejemplo, los programas fuente escritos en MASM 4.0 a menudo no se pueden compilar correctamente. en MASM 6.x. Al utilizar los compiladores de la serie MASM, si primero no comprende en qué versión específica se pueden usar la sintaxis y las opciones de compilación, habrá muchos errores en la compilación. Por lo tanto, es necesario comprender aquí la evolución de cada versión de MASM
La siguiente tabla enumera las diferencias entre las diferentes versiones de los compiladores MASM.
Versión
Introducción
MASM 4.00
Esta es la primera versión de MASM ampliamente utilizada, adecuada para programación ensambladora bajo DOS. Es muy sofisticado, pero no muy inteligente de usar, ya que requiere que el usuario escriba todo de manera precisa. La sintaxis ensambladora 8086 que se enseña en muchos libros de texto está dirigida a esta versión, para programadores. Es sólo un poco más conveniente que usar Debug.
MASM 5.00
MASM 5.00 es mucho más rápido que 4.00 y simplifica las pseudoinstrucciones de definición de segmentos en métodos de definición similares a .code y .data, mientras agrega además de admitir Según las instrucciones del procesador 80386, la compatibilidad con la versión 4.00 es muy buena
MASM 5.10
Para los programadores, la mayor mejora de esta versión es la adición de compatibilidad con @@ Label. De esta manera, los programadores ya no pierden mucho tiempo nombrando etiquetas. Además, MASM 5.10 agrega soporte para OS/2 1.x
MASM 5.10B
Lanzado en 1989, es más estable y rápido que la versión anterior. La versión más completa del compilador ensamblador de DOS
MASM 6.00
se lanzó en 1992 y tiene muchas mejoras. El compilador puede utilizar memoria extendida, que puede compilar archivos más grandes, y el nombre del archivo ejecutable se cambia de Masm.exe a Ml.exe en consecuencia. A partir de esta versión, puede usar * .asm en la línea de comando para compilar múltiples archivos fuente al mismo tiempo. El uso de estructuras de datos en el programa fuente y la sintaxis de los parámetros de la línea de comando se parecen más al estilo C. Una de las mayores mejoras es comenzar a admitir sintaxis de alto nivel como .if/.endif. De esta manera, usar ramas condicionales complejas es tan fácil como escribir en lenguajes de alto nivel. código sin definir una etiqueta; además, se ha agregado la directiva invoke para simplificar las llamadas a subrutinas con parámetros.
Estas dos mejoras hacen que el estilo del código ensamblador se parezca cada vez más a C, y la legibilidad y el mantenimiento mejoran enormemente
MASM6.00A
Versión inédita
MASM 6.00B
La última versión de MASM compatible con OS/2, corrige algunos errores en la versión anterior
MASM 6.10
Se corrigieron algunos errores y el archivo /Sc Se agregó una opción que puede enumerar el número de ciclos de reloj utilizados por cada instrucción en el archivo de lista generado
MASM6.10A
Lanzado en 1992, corregido algunos problemas de administración de memoria
MASM 6.11
Lanzado en noviembre de 1993, es compatible con Windows NT, puede escribir programas Win32 y admite instrucciones Pentium, pero no admite el conjunto de instrucciones MMX
p>MASM6.11C
Lanzado en 1994, soporte agregado para Windows 95 VxD
MASM 6.12
Lanzado en agosto de 1997, agregado .686, .686P, .MMX declaraciones y soporte para las instrucciones correspondientes
MASM 6.13
Lanzado en diciembre de 1997, se agregó la declaración .K3D y comenzó el soporte 3D para procesadores AMD Instrucciones
MASM 6.14
Esta es una versión muy completa que agrega soporte para el conjunto de instrucciones SIMD de Pentium III en .XMM y, en consecuencia, agrega OWORD (16 bytes)
MASM 6.15
.