Ensamblador de macros de Microsoft | |
---|---|
Tipo de | Compilador |
Autor | microsoft |
Desarrolladores | microsoft |
Sistema operativo | MS-DOS , Windows |
Idiomas de la interfaz | Ruso, Inglés, etc |
Primera edición | 1981 |
ultima versión | 14.16.27023.1 ( 7 de marzo de 2017 ) |
Estado | activo |
Licencia | CLUF de Microsoft |
Sitio web | microsoft.com/en-us/down… |
MASM (Microsoft Macro Assembler) es un ensamblador para procesadores x86 . Originalmente fue producido por Microsoft para escribir programas en el sistema operativo MS-DOS y durante algún tiempo fue el ensamblador más popular disponible para él. MASM admite una amplia variedad de funciones de macros y expresiones de programación estructurada, incluidas construcciones de alto nivel para repeticiones, llamadas a procedimientos y alternancias (razón por la cual MASM es un ensamblador de alto nivel). Luego[ ¿cuándo? ] agregó la capacidad de escribir programas para Windows . MASM es una de las pocas herramientas de desarrollo de Microsoft que no tenía versiones separadas de 16 y 32 bits.
Programa Hello World en MASM32 que imprime este mensaje y sale.
.386 .model flat , stdcall option casemap : ninguno include \ masm32 \ include \ masm32.inc include \ masm32 \ include \ kernel32.inc include \ masm32 \ macros \ macros.asm includelib \ masm32 \ lib \ masm32.lib includelib \ masm32 \ lib \ kernel32.lib .code start: print " Hola mundo " exit end startUn ejemplo del mismo programa en MASM versión 4.0 para el procesador Intel 8086 .
incluir segmento de datos io.asm x db ' ¡Hola mundo ! ' , ' $ ' los datos terminan el segmento de la pila pila db 128 dup ( ? ) la pila termina el segmento de código asume cs : código , ds : datos , ss : inicio de la pila : mov ax , datos mov ds , ax lea dx , x outstr terminar el código termina inicio finalUn ejemplo del mismo programa para MS-DOS en MASM versión 6.1 para el procesador Intel 8086 .
.model tiny .code .startup mov dx , offset Hello mov ah , 9 int 21 h .exit Hello db ' ¡ Hola mundo ! $ ' finA principios de la década de 1990, los ensambladores alternativos como TASM de Borland y el ensamblador libre NASM comenzaron a tomar parte de la participación de mercado de MASM. Sin embargo, dos eventos a fines de la década de 1990 permitieron que MASM retuviera la mayor parte de su participación: primero, Microsoft dejó de vender MASM como un producto comercial y comenzó a distribuirlo de forma gratuita como parte del DDK ( Eng. Device Driver Kit , un conjunto para crear controladores ). ). En segundo lugar, gracias al paquete MASM32 y los tutoriales de Win32 de Iczelion, resultó que la programación en MASM también es posible en un entorno de Microsoft Windows . En 2000, se lanzó MASM 6.15 como parte del kit de desarrollo de Visual C++ y todas las versiones de Visual C++ posteriores a la 6.0 incluían una versión de MASM igual a la de Visual C++. Posteriormente, Visual C++ 2005 introdujo una versión de MASM de 64 bits. Junto con la gran comunidad de programadores de MASM, estos desarrollos ayudaron a frenar la disminución de la popularidad de MASM en comparación con otros ensambladores. Hoy en día, MASM se sigue utilizando en la plataforma Win32 a pesar de la competencia de productos más nuevos como NASM , fasm , TASM , HLASM .
Hay muchos proyectos de desarrollo de software emergentes que admiten MASM, incluidos IDE (como RadASM ), depuradores (como OllyDbg) y desensambladores (incluido IDA , un desensamblador interactivo).
Aunque MASM ya no es un producto comercial, Microsoft continúa manteniendo el código fuente utilizado en otros productos de Microsoft. Desde que Microsoft dejó de vender MASM por separado, ha habido varias actualizaciones en la línea de producción de MASM 6.x (la última actualización es la versión 6.15, que se incluyó con Visual C++ 6.0) y, posteriormente, MASM 7.0 como parte de Visual C++ .NET 2002, MASM 7.1 en Visual C++ .NET 2003, MASM 8.0 en Visual C++ 2005 y MASM 9.0 en Visual C++ 2008 que admiten la plataforma x64 . Desde la versión 11, MASM se lanza nuevamente como un producto independiente, existen 2 entornos de desarrollo: normal (qedit) y unicode (uniedit).
lenguaje ensamblador | |
---|---|
IDE | |
traductores | |
Formatos de sintaxis |