ФАСМ
![]() Скриншот с предоставленным примером | |
Разработчик(и) | Томаш Гриштар |
---|---|
Первоначальный выпуск | март 2000 г |
Стабильная версия | 1.73.32 [1] ![]() |
Репозиторий | |
Написано в | Сборка |
Операционная система | Unix-подобные , Linux , Windows и IDE, MS-DOS и IDE, OpenBSD и т. д., MenuetOS , KolibriOS , OctaOS , DexOS и IDE, SkyOS , Solar_OS |
Платформа | х86 , х86-64 |
Тип | Ассемблер |
Лицензия | Упрощенный BSD со слабым пунктом об авторском левом |
Веб-сайт | сборщик квартир |
FASM ( плоский ассемблер ) — ассемблер для x86 процессоров . Он поддерживает в стиле Intel язык ассемблера на компьютерных архитектурах IA-32 и x86-64 . Он заявляет о высокой скорости, оптимизации размера, переносимости операционной системы (ОС) и макросов . возможностях [2] [3] Это низкоуровневый ассемблер [3] и намеренно использует очень мало параметров командной строки . Это бесплатное программное обеспечение с открытым исходным кодом .
Все версии FASM могут напрямую выводить любое из следующего: плоские «необработанные» двоичные файлы (можно также использовать в качестве исполняемого файла MS-DOS COM или драйвера SYS), объекты: исполняемый и связываемый формат (ELF) или общий формат объектных файлов (COFF) (классический). или для MS) или исполняемые файлы в формате MZ , ELF или Portable Executable (PE) (включая драйверы WDM, позволяющие использовать пользовательскую заглушку MZ DOS). Также существует неофициальный порт, ориентированный на архитектуру ARM ( FASMARM ). [4]
История
[ редактировать ]Проект был начат в 1999 году Томашем Гриштаром, он же Привалов , в то время студентом-математиком из Польши . Он был опубликован публично в марте 2000 года. [5] [6] FASM полностью написан на ассемблере и имеет полный исходный код. Он является автономным и может собирать себя, начиная с версии 0.90 (4 мая 1999 г.).
Изначально FASM работал в 16-битном плоском реальном режиме . Была добавлена 32-битная поддержка, а затем дополнена дополнительной поддержкой DPMI . Разработанный для простоты переноса на любую операционную систему с плоской 32-битной адресацией, он был перенесен на Windows, а затем на Linux.
Дизайн
[ редактировать ]FASM не поддерживает столько высокого уровня операторов , сколько MASM или TASM . [3] Он предоставляет функции синтаксиса и макросы, которые позволяют настраивать или создавать недостающие операторы. [5] Синтаксис адресации памяти аналогичен идеальному режиму TASM и NASM . Скобки обозначают операнды памяти, как и в обоих ассемблерах, но их размер выносится за скобки, как и в NASM. [7]
FASM — многопроходный ассемблер. Он обеспечивает обширную оптимизацию размера кода и позволяет неограниченные прямые ссылки. [3] [7] Необычная конструкция FASM определяет процедуры, только если они используются где-то в коде, что в большинстве языков выполняется компоновщиком для каждого объекта .
FASM основан на принципе «тот же источник, тот же вывод»: командная строка не влияет на содержимое результирующего файла. [7] Такой подход избавляет исходники FASM от проблем компиляции, часто присутствующих во многих сборочных проектах. С другой стороны, это усложняет поддержку проекта, состоящего из нескольких отдельно скомпилированных исходных файлов или проектов на разных языках. Однако существует оболочка Win32 под названием FA, которая решает эту проблему. [8] Проекты FASM можно собрать из одного исходного файла непосредственно в исполняемый файл без этапа компоновки. [3]
ИДЕТ
[ редактировать ]Fresh , проект, поддерживаемый интернет-сообществом, начатый Джоном Фаундом, представляет собой интегрированную среду разработки для FASM. [9] В настоящее время Fresh поддерживает Microsoft Windows и Linux. [9]
Использовать
[ редактировать ]Операционные системы, написанные с помощью FASM:
- МенюетОС [10] – 32- и 64-битные операционные системы с графическим интерфейсом от Вилле Турижанмаа.
- КолибриОС
Компиляторы, использующие FASM в качестве бэкэнда:
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ https://flatassembler.net/download.php .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ Грыштар, Томаш (12 мая 2008 г.). «Руководство программиста плоского ассемблера» . плоский монтажник . Проверено 12 мая 2008 г.
- ^ Jump up to: а б с д и Хайд, Рэндалл. «Какой ассемблер лучший?» . Проверено 18 мая 2008 г. [ постоянная мертвая ссылка ]
- ^ «ФАСМАРМ» . 20 марта 2008 г. Проверено 12 мая 2008 г.
- ^ Jump up to: а б «Интервью с Приваловым, автором ФАСМ» . 12 августа 2004 г. Архивировано из оригинала 8 октября 2007 г. Проверено 12 мая 2008 г.
- ^ Грыштар, Томаш (15 марта 2000 г.). «плоский ассемблер» . Проверено 19 мая 2008 г.
- ^ Jump up to: а б с Гриштар, Томаш. «Принципы проектирования плоского ассемблера» . Проверено 12 мая 2008 г.
- ^ Гриштар, Томаш. «FA – расширение командной строки для fasm» . Проверено 11 мая 2012 г.
- ^ Jump up to: а б Нашел, Джон. «Свежий ID проект» .
- ^ «МенуэтОС» . Проверено 18 мая 2008 г.
Внешние ссылки
[ редактировать ]- Проект FASM: Официальный сайт
- FASMLIB 0.8.0 – портативная 32-битная asm-библиотека x86 для FASM/MASM/YASM/NASM/GASM
- FASMARM — FASM для процессоров ARM, v1.27, 9 июня 2012 г.
- Свежая среда разработки