MASM

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
MASM
Error message due to an integer signedness bug in the stack setup code of MASM 1.00.gif
Тип асемблер
Розробник Microsoft
Стабільний випуск 10.0.30319.1 (12 квітня 2010)
Версії 12.0.21005.1 (8 листопада 2013)
Операційна система Windows і MS DOS
Ліцензія Microsoft EULA
masm32.com

Microsoft Macro Assembler (MASM) — асемблер для архітектури x86 під операційну систему Microsoft Windows, що використовує синтаксис Intel. Поточна версія MASM існує у двох різновидах: для 16- і 32 бітного коду і для 64-бітного (ML64).

До версії 6.12 був окремим продуктом Microsoft. Зараз він включений до складу різних компіляторів і середовищ розробки компанії.

Історія[ред. | ред. код]

Перші версії MASM з’явилися у 1981 році. До версії 5.0 MASM був доступний тільки для операційних систем MS DOS. Версії 5.1 і 6.0 розроблялися крім MS DOS також і для OS/2.

Версія 6.0, яка була випущена у 1992 році була першою версією, що включала підтримку програмування на більш високому рівні і більш C-подібний синтаксис. В кінці цього року з’явилася версія 6.1A, в якій було додано підтримку керуванням пам'яті, що була сумісна з Visual C++. У 1993 році було додано повну підтримку 32-бітного режиму і всього набору інструкцій процесора Pentium. Виконуваний файл MASM у той час постачався як "бі-модальний" DOS-розширений файл (використовуючи TNT DOS extender від Phar Lap).

Версії 6.12-6.14 були реалізовані як патчі до версії 6.11. Вони змінили тип виконуваного файлу MASM у власний формат Windows PE — і, зрештою, 6.11 була останньою версією з можливістю запуску на MS DOS.

Кінець-кінцем 1997 року MASM мав повну підтримку Windows 95 і включав деякі інструкції, специфічні для AMD.

У 1999 році представила набір інструкцій SIMD і MMX, які невдовзі після цього став підтримувати і MASM. З випуском версії 6.15, Microsoft припинила підтримку MASM як окремого продукту і включила його до інструментарію Visual Studio. Підтримки 64-бітного режиму в MASM не було до випуску Visual Studio 2005, де MASM отримав номер версії 8.0. Сьогодні MASM продовжує використовуватися на платформі Win32, незважаючи на конкуренцію з такими новими продуктами, як NASM, FASM, TASM, HLASM.

Приклади програм[ред. | ред. код]

Програма Hello World на MASM32.

    .386
    .model flat, stdcall
    option casemap :none
    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 "Hello world"
      exit
    end start

Приклад тієї ж програми на мові MASM версії 4.0 для процесора Intel 8086.

include io.asm
   data segment
        x db 'Hello world!', '$'
   data ends
  stack segment stack
        db 128 dup (?)
  stack ends
   code segment
        assume cs: code, ds: data, ss: stack
 start: mov ax, data
        mov ds, ax
        lea dx, x
        outstr
        finish
   code ends
        end start

Приклад тієї ж програми для MS-DOS на мові MASM версії 6.1 для процесора Intel 8086.

    .model tiny
    .code
    .startup
    mov dx, offset Hello
    mov ah, 9
    int 21h
    .exit
    Hello db 'Hello world!$'
    end

Програми сторонніх розробників, що підтримують MASM[ред. | ред. код]

Інтегровані середовища розробки[ред. | ред. код]

Знежучувачі[ред. | ред. код]

Дизасемблери[ред. | ред. код]

  • IDAPro

Примітки[ред. | ред. код]