FASM - FASM

FASM
FASMD - версия DOS с IDE
FASMD - версия DOS с IDE
Разработчики)Томаш Грыштар
изначальный выпускМарт 2000 г.; 20 лет спустя (2000-03)
Стабильный выпуск
1.73.25 / 20 августа 2020 г.; 3 месяца назад (2020-08-20)
Операционная системаUnix-подобный, Linux, Windows и IDE, ДОС и IDE, OpenBSD, так далее., MenuetOS, КолибриОС, OctaOS, DexOS и IDE, SkyOS, Solar_OS
Платформаx86, x86-64
ТипАссемблер
ЛицензияУпрощенный BSD с слабое авторское лево пункт
Интернет сайтплоский сборщик.сеть

FASM (плоский монтажник) является ассемблер для x86 процессоры. Он поддерживает В стиле Intel язык ассемблера на IA-32 и x86-64 компьютерные архитектуры. Требуется высокая скорость, оптимизация размера, Операционная система (ОС) переносимость и макрос способности.[1][2] Это низкий уровень ассемблер[2] и намеренно использует очень мало командная строка опции. это бесплатное программное обеспечение с открытым исходным кодом.

Все версии FASM могут напрямую выводить любое из следующего: плоский «необработанный» двоичный (также может использоваться как DOS Исполняемый файл COM или драйвер SYS), объекты: Исполняемый и связываемый формат (ELF) или Общий формат объектного файла (COFF) (классический или для MS) или исполняемые файлы в любом MZ, ELF или Переносимый исполняемый файл (PE) формат (включая драйверы WDM, позволяет настраивать заглушку MZ DOS). Неофициальный порт, нацеленный на ARM архитектура (ФАСМАРМ ) тоже существует.[3]

История

Проект был начат в 1999 году Томашем Грыштаром, также известным как Tomasz Grysztar. Привалов, в то время студентка математики из Польша. Он был выпущен публично в марте 2000 года.[4][5] FASM полностью написан на язык ассемблера и поставляется с полным исходным кодом. это самостоятельный хостинг и может собираться с версии 0.90 (4 мая 1999 г.).

Изначально FASM работал только в 16-битном формате. плоский реальный режим. Была добавлена ​​32-битная поддержка, а затем дополнена необязательной DPMI поддержка. Он был написан таким образом, чтобы упростить перенос на любую операционную систему, допускающую плоскую 32-битную адресацию; он был перенесен на Windows, а затем на Linux.

дизайн

FASM не поддерживает так много высокий уровень заявления как MASM или ТАСМ.[2] Он предоставляет функции синтаксиса и макросы, которые позволяют настраивать или создавать отсутствующие операторы.[4] Его синтаксис адресации памяти аналогичен идеальному режиму TASM и NASM. Скобки используются для обозначения операндов памяти, как в обоих ассемблерах, но их размер вынесен за скобки, как в NASM.[6]

FASM - многопроходный ассемблер. Он обеспечивает обширную оптимизацию размера кода и допускает неограниченные прямые ссылки.[2][6] Необычная конструкция FASM определяет процедуры, только если они используются где-то в коде, что в большинстве языков выполняется для каждого объекта с помощью компоновщик.

FASM основан на принципе «один и тот же источник, тот же вывод»: на содержимое результирующего файла не влияет командная строка.[6] Такой подход избавляет исходники FASM от проблем компиляции, которые часто возникают во многих проектах сборки. С другой стороны, это затрудняет поддержку проекта, состоящего из нескольких отдельно скомпилированных исходных файлов или проектов на разных языках. Однако существует Win32 обертка называется FA, что смягчает эту проблему.[7] Проекты FASM могут быть построены из одного исходного файла непосредственно в исполняемый файл без этапа связывания.[2]

IDE

Свежий, проект John Found, поддерживаемый интернет-сообществом, является интегрированная среда разработки для FASM.[8] Fresh в настоящее время поддерживает Microsoft Windows и Linux.[8]

Использовать

Операционные системы, написанные с помощью FASM:

  • DexOS[9] - Крейг Бэмфорд и сообщество DexOS
  • MenuetOS[10] - 32- и 64-битный Операционные системы с графическим интерфейсом пользователя от Вилле Туриджанмаа
  • КолибриОС

Компиляторы, использующие FASM в качестве бэкэнда:

Смотрите также

использованная литература

  1. ^ Томаш Грыштар. "Руководство программиста Flat Assembler". Получено 2008-05-12.
  2. ^ а б c d е Рэндалл Хайд. "Какой ассемблер лучший?". Получено 2008-05-18.
  3. ^ "ФАСМАРМ". 2008-03-20. Получено 2008-05-12.
  4. ^ а б «Интервью с Приваловым автором FASM». 2004-08-12. Архивировано из оригинал на 2007-10-08. Получено 2008-05-12.
  5. ^ Томаш Грыштар (15.03.2000). «плоский монтажник». Получено 2008-05-19.
  6. ^ а б c Томаш Грыштар. «Принципы проектирования плоского ассемблера». Получено 2008-05-12.
  7. ^ Томаш Грыштар. «FA - расширение командной строки для fasm». Получено 2012-05-11.
  8. ^ а б «Свежий проект ID».
  9. ^ «Часто задаваемые вопросы о DexOS». Архивировано из оригинал на 2016-03-03. Получено 2008-05-18.
  10. ^ "MenuetOS". Получено 2008-05-18.

внешние ссылки