Страница с сайта Владислава Пирогова Ассемблер и не только.


Какой ассемблер выбрать? Обзор.


Из книги Ассемблер - 64, Пирогов В.Ю.

TASM


Пакет TASM (Turbo Assembler) это программный продукт компании Borland, предназначенный для создания программного обеспечения на языке
ассемблера. Особенностью данного ассемблера всегда была быстрота трансляции и обширный набор макросредств. Кроме поддержки стандартного
режима совместимого с ассемблером MASM (Microsoft) данный ассемблер поддерживал также расширенный режим IDEAL. Несмотря на то, что уже
много лет Turbo Assembler не поддерживается корпорацией Borland, он до сих пор популярен в кругах программистов. В пакет TASM входили
утилиты поддержки программирования на ассемблере: tlink.exe – компоновщик, tlib.exe – библиотекарь, make.exe – программа для автоматизации
процесса трансляции. Степаном Половниковым была сделана попытка реанимации TASM. Новый продукт, созданный на основе TASM,
называется Lazy Assembler (LZASM). Сайт поддержки этого ассемблера некоторое время располагался по адресу http://lzasm.hotbox.ru/.

MASM


Ассемблер MASM (Microsoft макроассемблер) предназначен для x86 микропроцессоров и ведет свою историю с 1981 года. Первоначально
был создан корпорацией Microsoft для программирования в операционной системе MS DOS. Долгое время он конкурировал по популярности
с ассемблером TASM, пока, наконец, последний ушел в небытие. В дальнейшем MASM был адаптирован для программирования в операционной
системе Windows. В настоящее время корпорация Microsoft распространяет пакет MASM в составе пакета Visual Studio.NET (в настоящее
время выпущена 64-битовая версия MASM и 64-битовый компоновщик link.exe). Кроме этого существуют независимые группы разработчиков,
поддерживающие MASM32. Одну из таких групп возглавляет Стив Хатчессон (http://www.movsd.com, Австралия). Пакет MASM32, который
поддерживается данной группой, содержит большое количество примеров, библиотек, документации и утилит. Де факто пока MASM среди
других ассемблеров является в настоящее время законодателем мод в области программирования в операционной системе Windows. К
сожалению пакета MASM64 пока еще не существует, хотя потребность в этом уже появилась.

FASM


FASM (Flat Assembler) - свободно-распространяемый многопроходный ассемблер. Автор Томаш Гриштар (Tomasz Grysztar). Ассемблер
написан на себе самом, поэтому является одним из самых быстрых ассемблеров. Ассемблер обладает богатыми возможностями: обширный
макро-аппарат, поддержка основных форматов объектных исполняемых модулей. В большинстве случаев FASM позволяет обходиться без
компоновщика. Но с ним можно использовать и обычные компоновщики (например, link.exe), поскольку ассемблер поддерживает основные
форматы объектных модулей. Сетевая поддержка ассемблера http://flatassembler.net (см. также русскоязычный сайт http://fasmassembler.narod.ru).
FASM многоплатформенный ассемблер – на нем можно программировать и в Windows и в Unix-системах. Большая часть примеров в этой книжке
для ассемблера FASM.

NASM


Ассемблер NASM (от английского Netwide Assembler) – свободно распространяемый ассемблер (лицензия GNU LGPL). Ассемблер может быть
использован для написания 16-, 32-, 64-битовых программ для различных платформ. NASM был создан Саймоном Тэтхемом совместно с
Юлианом Холлом и в настоящее время развивается маленькой командой разработчиков. Первоначально он был выпущен согласно его собственной
лицензии, но позже эта лицензия была изменена на GNU LGPL после множества проблем, вызванных выбором лицензии. Ассемблер поддерживает
множество форматов для различных операционных систем, что позволяет вести разработку для одной операционной системы, используя
другую операционную систему. Сетевую поддержку NASM см. http://www.nasm.us (см. также http://www.opennet.ru/docs/RUS/nasm).

YASM


Название YASM имеет несколько возможных истолкований: Yes, it’s an ASseMbler, Yet Another aSseMbler, Your fAvorite aSseMbler и др.
Данный ассемблер выпускается под лицензией BSD. Ассемблер YASM это полностью переписанный ассемблер NASM. В настоящее время он
развивается Питером Джонсоном и Майклом Ерманом. Будучи динамично развивающимся проектом, YASM предлагает прямую поддержку
пользователей, которые ищут новые особенности. Кроме Intel-синтаксиса, применяемого, например, в NASM, YASM также поддерживает и
AT&T синтаксис, распространенный в Unix-системах. Ассемблер YASM построен модульно, что позволяет легко добавлять новые формы синтаксиса,
препроцессоры и т.п. Сетевая поддержка http://www.tortall.net/projects/yasm.

RosAsm


Ассемблер RosAsm — 32-битовый Win32 x86 ассемблер, выпущенный согласно лицензии GNU GPL. Проект RosAsm поддерживает операционную
систему ReactOS . RosAsm производится вместе с интегрированной средой программирования, в которую входят ассемблер, компоновщик,
отладчик, редактор ресурсов, дизассемблер. Дополнительную информацию об ассемблере и скачать его и все необходимые компоненты
можно с сайта http://betov.free.fr/RosAsm.html.

GAS


GAS - это сокращение от GNU Assembler. Поскольку GAS был разработан для поддержки компиляторов Unix, он использует стандартный синтаксис
AT&T, который несколько отличается от большинства ассемблеров, основанных на синтаксисе Intel. Ассемблер GAS включен в
стандартный комплект операционных систем линеек Unix и Linux, и может быть запущен посредством утилиты GCC (GNU Compiler Collection).