1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Програмирование на fasm под Win64 часть 1 \"Ассемблер, отладчик, IDE\"

Дата публикации 5 июл 2017 | Редактировалось 10 янв 2018
Введение

Я начинаю цикл статей по ассемблеру fasm. Возможно у вас есть вопрос: “Зачем в 21 веке нужен ассемблер?”. Я бы ответил так: Конечно, знание ассемблера не обязятельно, но оно способствует пониманию, во что превращается ваш код, как он работает, это позволяет почувствовать силу. Ну и в конце концов: Писать на ассемблере просто приятно (ну по крайней мере небольшие приложения).
Так что надеюсь, что мои статьи будут вам полезны.

Где взять fasm?

Собственно тут: http://flatassembler.net/download.php
На этой странице Томаш Грыштар(создатель fasm-а) выкладывает последнюю версию ассемблера. Там есть версии для DOS, Linux, Unix и Windows, нам нужна для Windows. В скачанном архиве находятся следующие компоненты:
  • fasm.exe – собственно сам ассемблер
  • fasmw.exe – IDE (среда разработки)
  • fasm.pdf – документация
  • папка source – исходники fasm-а (написан на самом себе)
  • папка include – папка с заголовками, импортами, и т.д.
  • папка examples – примеры программ на fasm-е
    Содержимое fasm.pdf дублирует 2 раздела документации “flat assembler 1.71 Programmer’s Manual” и “Windows programming” отсюда: http://flatassembler.net/docs.php
IDE (среда разработки)

Перед тем, как писать программы нужно определиться, в чём их писать. Для fasm-а существуют разные IDE, например: fasmw.exe(находится в архиве с fasm-ом), RadAsm, WinAsm Studio, Fresh, … Выберайте, какая вам больше по вкусу. Сразу скажу, что IDE из поставки fasm-а обладает минимальным количеством фичей, так что я бы рекомендовал использовать альтернативную IDE. Я, например, использую RadAsm 3.0, его можно взять здесь: https://fbedit.svn.sourceforge.net/svnroot/fbedit/RadASM30/Release/RadASM.zip (это хорошая IDE, но к сожалений она больше не обновляется) К статье приложен файл Fasm.ini, там выбрана чёрная тема, добавлены x64 регистры и добавлена подсветка для большего числа инструкций. Можете поставить его вместо Fasm.ini поумолчанию, только исправьте в нём пути к папке с fasm-ом в 6 и 7 строках. Там написано:
Код (Text):
  1. [Environment]
  2. 0=path,C:\Program Files (x86)\fasm;$A\..\Ollydbg
  3. 1=include,C:\Program Files (x86)\fasm\INCLUDE
Если вы распаковали fasm в папку <полный путь>, то надо заменить приведённый выше код на:
Код (Text):
  1. [Environment]
  2. 0=path,<полный путь>\fasm;$A\..\Ollydbg
  3. 1=include,<полный путь>\fasm\INCLUDE
Отладчик

Писать программы это — хорошо, но нужно находить и исправлять баги, для этого нужен отладчик. Существуют разные отладчики способные отлаживать 64-битный код например: WinDbg, fdbg, x64dbg. Наиболее удобный на мой взгляд - x64dbg, его можно скачать здесь.
Это — всё, что я хотел рассказать в первой части.

Вложения:

  • Fasm.zip
    Размер файла:
    6,8 КБ
    Просмотров:
    611

4 11.395
_qwe8013

_qwe8013
Member

Регистрация:
30 ноя 2016
Публикаций:
2

Комментарии


      1. addedie 22 сен 2019
        перезалейте пожалуйста эту версию RadAsm, буду весьма благодарен....
      2. седьмой 10 июл 2017
        Спасибо, все разобрался, код работает под windows 7 - 64.
      3. седьмой 10 июл 2017
        Спасибо, очень интересно, но почему то Fasm в ОС вин 64 не компилируется код, скаченный по этой ссылке
        код взял вот отсюда
        Код (Text):
        1.  
        2. use16               ;Генерировать 16-битный код
        3. org 100h            ;Указание компилятору вести отсчёт смещения от адреса 100h, так как DOS грузит по данному смещению.
        4.     mov dx,hello    ;В DX адрес строки.
        5.     mov ah,9        ;Номер функции DOS.
        6.     int 21h         ;Обращение к функции DOS.
        7.     mov ax,4C00h    ;\
        8.     int 21h         ;/ Завершение программы
        9. ;-------------------------------------------------------
        10. hello db 'Hello, world!$'
        11.  
        код взял по ссылке http://www.programmersforum.ru/showthread.php?t=306951&page=2 Может быть там надо что то перенастроить? Выдает сообщение, что не может откомпилировать код в системе вин 64. Сам уже кажется понял, этот код для доса, а можно где то взять рабочий код минимальный для проверки работы компилятора Fasm вин 64?
      4. yashechka 9 июл 2017
        Спасибо, молодец!!!