FASMD - версия для DOS с IDE | |
Разработчик (и) | Tomasz Grysztar |
---|---|
Первый выпуск | март 2000 г.; 20 лет назад (2000-03) |
Стабильный выпуск | 1.73.24 / 29 апреля 2020 г.; 5 месяцев назад (2020-04-29) |
Операционная система | Unix-подобная, Linux, Windows и IDE, DOS и IDE, OpenBSD и т. д., MenuetOS, KolibriOS, OctaOS, DexOS и IDE, SkyOS, Solar_OS |
Платформа | x86, x86-64 |
Тип | Ассемблер |
Лицензия | Упрощенный BSD со слабым авторским левом пункт |
Веб-сайт | flatassembler.net |
FASM (плоский ассемблер) - это ассемблер для процессоров x86. Он поддерживает Intel-style язык ассемблера на компьютерных архитектурах IA-32 и x86-64. Он заявляет о высокой скорости, оптимизации размера, переносимости операционной системы (ОС) и возможности макросов. Это низкоуровневый ассемблер, который намеренно использует очень мало параметров командной строки. Это бесплатное программное обеспечение с открытым исходным кодом..
Все версии FASM могут напрямую выводить любое из следующего: необработанный двоичный (также может использоваться как исполняемый файл DOS COM или драйвер SYS), объекты: Executable and Linkable Format (ELF) или Common Object File Format (COFF) (классический или специфичный для MS), или исполняемые файлы в любом MZ Формат, ELF или Portable Executable (PE) (включая драйверы WDM, позволяет настраивать заглушку MZ DOS). Также существует неофициальный порт, ориентированный на архитектуру ARM (FASMARM ).
Проект был начат в 1999 году Томашем Грыштаром, также известным как Привалов, в то время студентом математического факультета Польша. Он был выпущен публично в марте 2000 года. FASM полностью написан на языке ассемблера и поставляется с полным исходным кодом. Это самообслуживание, и он может собираться самостоятельно с версии 0.90 (4 мая 1999 г.).
FASM изначально работал только в 16-битном плоском реальном режиме. Была добавлена 32-разрядная поддержка, а затем дополнена дополнительной поддержкой DPMI. Он был написан таким образом, чтобы упростить перенос на любую операционную систему, допускающую плоскую 32-битную адресацию; он был перенесен на Windows, а затем на Linux.
FASM не поддерживает столько операторов высокого уровня, как MASM или TASM. Он предоставляет функции синтаксиса и макросы, которые позволяют настраивать или создавать отсутствующие операторы. Его синтаксис адресации памяти аналогичен идеальному режиму TASM и NASM. Скобки используются для обозначения операндов памяти, как и в обоих ассемблерах, но их размер помещен за скобками, как в NASM.
FASM - многопроходный ассемблер. Он обеспечивает обширную оптимизацию размера кода и допускает неограниченные прямые ссылки. Необычная конструкция FASM определяет процедуры только в том случае, если они используются где-то в коде, то, что в большинстве языков выполняется для каждого объекта с помощью компоновщика .
FASM основывается на принципе «тот же источник, тот же результат»: командная строка не влияет на содержимое полученного файла. Такой подход избавляет исходники FASM от проблем компиляции, которые часто возникают во многих проектах сборки. С другой стороны, это затрудняет поддержку проекта, состоящего из нескольких отдельно скомпилированных исходных файлов или проектов на разных языках. Однако существует Win32 оболочка под названием FA, которая смягчает эту проблему. Проекты FASM могут быть построены из одного исходного файла непосредственно в исполняемый файл без этапа связывания.
Fresh, проект, поддерживаемый интернет-сообществом, запущенный John Found, представляет собой интегрированный среда разработки для FASM. Fresh в настоящее время поддерживает Microsoft Windows и Linux.
Операционные системы, написанные с помощью FASM:
Компиляторы, использующие FASM в качестве бэкэнда: