Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Все версии FASM могут напрямую выводить любой из следующего: необработанный двоичный файл (также используемый как исполняемый файл DOS COM или драйвер SYS), объекты: формат исполняемых и связываемых файлов (ELF) или формат общего объектного файла (COFF) (классический или MS -specific) или исполняемые файлы в формате MZ , ELF или Portable Executable (PE) (включая драйверы WDM, позволяет настраивать MZ-заглушку DOS). Также существует неофициальный порт, ориентированный на архитектуру ARM ( FASMARM ). [3]

История [ править ]

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

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

Дизайн [ править ]

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

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

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

IDE [ править ]

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

Используйте [ редактировать ]

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

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

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

  • PureBasic
  • Сборка высокого уровня (HLA)
  • BlitzMax

См. Также [ править ]

  • Сравнение ассемблеров

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Проект FASM: Официальный сайт
  • FASMLIB 0.8.0 - портативная 32-битная библиотека asm x86 для FASM / MASM / YASM / NASM / GASM
  • FASMARM - FASM для процессоров ARM, v1.27, 9 июня 2012 г. ( 2012-06-09 )
  • Свежая IDE