Blog. Just Blog

Установка и настройка Flat Assembler (FASM)

Версия для печати Добавить в Избранное Отправить на E-Mail 01.11.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
Программирование на Ассемблере я начинал с Turbo Assembler (TASM) под MS-DOS, сейчас пишу на Flat Assembler (FASM) под Windows. Это очень удобный и мощный пакет для разработки, бесплатный для любого использования. Написан полностью на самом себе, исходники прилагаются. Мне он нравится тем, что позволяет хранить код и описания ресурсов в одном ASM-файле, поддерживает макросы, генерит чистый машинный код без всякой незаявленной самодеятельности, не требует лишней рутинной работы типа прописывания каждой задействованной функции в секцию импорта и еще множество приятных мелочей, облегчающих жизнь программисту. Единственным недостатком является отсутствие достаточного количества готовых исходников, например по сравнению с тем же MASM'ом, а портирование исходников с других платформ на FASM иногда вызывает затруднения. Но на мой взгляд портирование, в отличие от копирования, помогает гораздо лучше изучить язык. Несколько исходников-примеров есть в самом дистрибутиве FASM, еще несколько примеров можно скачать с офсайта или поискать в Интернете. Ответы на многие возникающие вопросы можно найти на официальном форуме FASM. Форум англоязычный, но на нем немало наших соотечественников. К новичкам на форуме относятся хорошо и отвечают даже на самые глупые вопросы.

Для установки Flat Assembler скачайте дистрибутив с офсайта (около 800 килобайт). На момент публикации версия FASM 1.67.27, если ссылка изменится, то можете посмотреть обновление на странице загрузки. Там же можно скачать версии FASM для Linux, Unix и MS-DOS. Бесплатный add-on FASMARM к FASM для работы с ARM можно найти здесь, текущая версия FASMARM 1.12. Инсталлятора нет, программа устанавливается простым извлечением из архива в какое-нибудь удобное для вас место, например C:\FASM. Обязательно скачайте справочник Microsoft Win32 Programmer's Reference, распакуйте его в папку с FASM'ом. Для удобства можно сделать вложенную папку \help.

Microsoft Win32 Programmer's ReferenceMicrosoft Win32 Programmer's Reference

Microsoft.Win32.Programmers.Reference.zip (5,682,421 bytes)

Техническую документацию по FASM на английском языке можно скачать с офсайта, на русском языке есть вот такие мануалы:

Основной мануал Flat Assembler 1.64Основной мануал Flat Assembler 1.64

FASM.1.64.Manual.Rus.zip (26,950 bytes)

Руководство по препроцессору FASMРуководство по препроцессору FASM

FASM.Preprocessor.Tutorial.zip (19,429 bytes)

Для продвинутых программистов могу порекомендовать справочник Windows NT/2000 Native API Reference на английском языке:

Windows NT/2000 Native API ReferenceWindows NT/2000 Native API Reference

Windows.NT.2000.Native.API.Reference.zip (1,657,576 bytes)

Для общего развития можно почитать книги Ассемблер для процессоров Intel Pentium (автор Ю.С.Магда) и Ассемблер для DOS, Windows и Unix (автор С.В.Зубков), Ассемблер & Win32. Курс молодого бойца (автор и составитель Р.Аблязов).

Ассемблер для процессоров Intel PentiumАссемблер для процессоров Intel Pentium

Assembler.for.Intel.Pentium.zip (2,168,688 bytes)

Ассемблер для DOS, Windows и UnixАссемблер для DOS, Windows и Unix

Assembler.for.DOS.Windows.and.Unix.zip (674,385 bytes)

Ассемблер & Win32. Курс молодого бойцаАссемблер & Win32. Курс молодого бойца

Assembler.Win32.Kurs.Molodogo.Boyca.zip (119,283 bytes)

И на последок две книги из категории "must have". Их, конечно, лучше иметь в бумажном варианте в качестве настольных справочников, но электронные версии тоже вполне подойдут. Книги залиты на файлообменник. Обе книги на русском языке, в хорошем качестве.
Соломон Д., Руссинович М. - "Внутреннее устройство Microsoft Windows 2000. Мастер-класс", формат файла: PDF, размер архива 34 Мб. Скачать
Соломон Д., Руссинович М. - "Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, and Windows 2000", формат файла: DjVu, размер архива 27 Мб. Скачать

При первом запуске FASM создаст файл настроек FASMW.INI, откройте его для редактирования в Блокноте. В конец файла надо будет добавить две новых секции. Сперва пропишите полный путь к Win32 Programmer's Reference:

[Help]
path=C:\FASM\help\WIN32.HLP

Это же можно сделать и через меню редактора Help - Pick help file... Теперь, если все сделано правильно, достаточно установить в редакторе курсор на название функции API и нажать F1. Справочник сразу откроется на описании этой функции.

После этого надо установить необходимые переменные окружения и пути для подключаемых файлов. Например у меня прописаны вот такие:

[Environment]
include="C:\FASM\INCLUDE"
music="C:\FASM\KEYGEN\XM_FILES"
ufmod="C:\FASM\INCLUDE\MUSIC"

Переменная include обязательная, остальные для удобства. Теперь при написании программ вместо абсолютных путей можно (и нужно) использовать относительные:
  1. format PE GUI 4.0
  2. entry start
  3.  
  4. ; В некоторых исходниках встречается подобные строчки:
  5. ; include '%fasminc%\win32a.inc'
  6. ; После установки переменной %include% более правильная запись будет такая:
  7. include 'win32a.inc'          ; Путь к файлу берется из %include%
  8. ...
  9.  
  10. ; Добавление файлов в секцию данных
  11. section '.data' data readable writeable
  12. xm file '%music%\jamers.xm'   ; Путь к файлу берется из %music%
  13. xm_len  = $-xm
  14. ...
  15.  
  16. ; Подключение функций в таблицу импорта
  17. section '.idata' import data readable writeable
  18. library kernel32,"kernel32.dll",\
  19.         user32,"user32.dll",\
  20.         shell32,"shell32.dll",\
  21.         gdi32,"gdi32.dll"
  22.  
  23. include "apia\kernel32.inc"   ; Путь к файлу берется из %include%
  24. include "apia\user32.inc"
  25. include "apia\shell32.inc"
  26. include "apia\gdi32.inc"
  27. ...
  28.  
  29. ; Подключение отдельных файлов
  30. include '%ufmod%\ufmod.inc'   ; Путь к файлу берется из %ufmod%
  31. ...
Когда в настройках FASM установлена переменная include, использовать переменную %fasminc% уже не требуется. В крайнем случае ее можно продублировать в FASMW.INI, но делать это нежелательно, лучше просто удалить ее из всех исходников.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на Я.ру Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Поделиться ссылкой на Friendfeed Добавить в Яндекс.Закладки Добавить в закладки Memori Добавить в закладки Google
Просмотров: 20103 | Комментариев: 35

Комментарии

Отзывы посетителей сайта о статье
Денис (11.03.2012 в 20:35):
это что все FASM? Недавно же слышал что на fasm нет книг

а так спасиьо за книжки
ManHunter (29.02.2012 в 08:10):
*facepalm*
Не пиши больше, не надо.
flawiimark (29.02.2012 в 04:41):
Я купил флоппи-диск,считая его предметом,
принадлежащим одному из способов управления
информацией.В частности,сумел установить на
флоппи-диски Колибри и Менуэт. Но после появления
рабочего стола в обоих случаях ничего не
предпринимаю,так как по большому счёту дуб
в каракулях программистов.Теперь занимаюсь
урывками информацией по ассемблеру.Хотелось
бы посоветовать автору описать следующий
метод использования Колибри или Менуэта.
Поскольку в приводе флоппи есть гнездо для
USB,то можно для этих крох подключить
трубопровод с большой памятью.В этом
случае отпадает необходимость устанавливать
обе эти "FASM-OS" на жёсткий диск с риском
испортить загрузочное меню.К примеру,после
попытки установить HaikuOS,которая тоже не
лишёна славы,пришлось обращаться в
мастерскую на предмет восстановления и
переустановки Windows7&XP.Получилось всё
дорого.А уж если что-то напутать с
ассемблер,то можно и с компьютером
попрощаться...Всего наилучшего.Если будет
решение по предложенной задаче,то звякните
по адресу flawii@ya.ru или flawiimark@hotmail.com.
Если нет,я от этого не умру.
ManHunter (24.01.2012 в 20:16):
Читай камменты, все написано как качать.
sergo (24.01.2012 в 18:29):
Microsoft.Win32.Programmers.Reference.zip - битый архив
Павел (23.03.2011 в 20:34):
респект
Колян (04.02.2011 в 07:46):
Спасибо
Sergey_K (05.01.2011 в 20:49):
Спасибо! Попробуем.
Вася (12.12.2010 в 17:57):
отвечаю сам себе - работает
кстати на офф сайте доступна версия 1.69.29
Вася (12.12.2010 в 16:22):
кто знает FASM из под обычного
пользователя будет работать?
а то из под админа страшно запускать
DELLPZ (07.12.2010 в 09:28):
Классная штучка,работает настроенный даже на флехе...
К Win 7 нужно ещё MFCDLL Shared Library - Retail Version запихнуть 71-ую,

СПАСИБО !!!!
ТЕперь не надо долгое время сидеть со словарём.
Ivan (24.10.2010 в 12:18):
Спасибо!!!!
Maks (02.10.2010 в 22:48):
Несколько суток искал ассемблер спс.
looooser (27.07.2010 в 17:03):
сейчас посмотрим. вдруг поможет..
Святозарка (14.07.2010 в 23:23):
Спс
ManHunter (13.04.2010 в 16:26):
zed, там олдскульная кодировка MS-DOS
zed (16.03.2010 в 14:25):
Основной Мануал к FASM.txt подскажите плз чем это открыть можно, пробовал блокнотом и нотпадом++ вижу одни иероглифы, менял кодировки в нотпад++ не помогло
vim (10.02.2010 в 00:09):
Спасибо
Shyntiles (21.01.2010 в 06:47):
какой учебник более понятнее по языку Ассемблер
ManHunter (15.11.2009 в 20:41):
serega386, насколько я знаю, достаточно взять winhlp32.exe от WinXP и заменить им аналогичный файл в Windows 7. А те, кто по какой-то причине сидит на висте - сами себе злобные буратины и это их личные проблемы.
Зубкова, кстати, удобнее читать в CHM, оттуда легче дергать код при необходимости.
serega386 (15.11.2009 в 04:19):
в вин7 и виста еще требуется докачать KB для просмотра HLP, а там дают тока после проверки системы. полезно наверно тоже выложить? могу выслать для вин7 32и64.msu мой адрес никсобакаmailru
а так же зубкова в нормальном пдф
ManHunter (09.11.2009 в 12:29):
Добавил еще две книжки по Ассемблеру для общего развития.
ТОЛИК (30.10.2009 в 00:41):
ВСЕ ЧТО НАДА ВМЕСТЕ
КОРОТКО ЯСНО
БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО )))
Rambler (07.10.2009 в 03:53):
СПС!
ssu (18.09.2009 в 14:25):
Спасибо за информацию
ГоРяЩиЙ^зАяЦ (24.07.2009 в 00:21):
Большое пасибо. ща начну его потрошить))))))
Поддубный (04.05.2009 в 22:34):
Как прикрутить строку вида '%fasminc%\APIA\kernel32.inc'   чтобы каждый раз не пришлось редактировать исходники в частности "APIA" (fasminc прикрутил)
в FASMW.ini строка вида APIA = C:\fasmw\INCLUDE\API не фурычит
vik (27.03.2009 в 18:03):
win32 говняный
Сергій (18.02.2009 в 06:56):
Дякую!
ManHunter (05.02.2009 в 08:12):
TiK-TiK, качай браузером и будет тебе счастье
TiK-TiK (05.02.2009 в 08:01):
тока  вот что то мануалы скачать не получаеться:(
TiK-TiK (05.02.2009 в 07:44):
спасибо  искал  фуф   ели нашел !
zLoy (13.01.2009 в 18:42):
очень пасибки за полезную инфу)
ManHunter (14.12.2008 в 19:18):
Вот когда я в качестве IDE буду использовать RadAsm, тогда и напишу. А случится это НИКОГДА.
Ivan_32 (14.12.2008 в 05:14):
А не могли бы вы написать гайд как FASM прикрутить к RadASM-у?

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п. будут удаляться. Злостным нарушителям доступ к сайту может быть заблокирован.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2012
При использовании материалов ссылка на сайт обязательна
Время генерации: 0,11 сек. / MySQL: 2 (0,0007 сек.) / Память: 3,5 Mb
Наверх