Введение Я начинаю цикл статей по ассемблеру 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 К статье приложен файл Fasm.ini, там выбрана чёрная тема, добавлены x64 регистры и добавлена подсветка для большего числа инструкций. Можете поставить его вместо Fasm.ini поумолчанию, только исправьте в нём пути к папке с fasm-ом в 6 и 7 строках. Отладчик Писать программы это — хорошо, но нужно находить и исправлять баги, для этого нужен отладчик. Существуют разные отладчики способные отлаживать 64-битный код например: WinDbg, fdbg, x64dbg. Я использую WinDbg. Далее я скажу пару слов о WinDbg. Скачать WinDbg можно с сайта Microsoft. При первом открытии WinDbg производит ужасающее впечатление, но не пугайтесь, нужно просто правильно настроить workspace. Добавлять разные окна можно с помощью меню “View”: от пункта “Command”(то, что показано по умолчанию) до “Processes and Threads”. Чтобы менять цвета оформления в том же меню “View” щёлкните по пункту “Options…”. Кроме окна с командами, которое есть по умолчанию нам понадобятся следующие окна: “Disassembly” – окно дизассемблера, чтобы видеть код. “Registers” – регистры, о них в следующей статье. “Memory” – для просмотра участков памяти. И ещё один “Memory” – для стека, поставьте в нём поле “Virtual” в значение rsp, а поле “Display format” в “Pointer and symbol”, о стеке я расскажу позже. В принципе можете не заморачиваться и взять workspace отсюда:https://habrahabr.ru/post/187522/, в WinDbg “File”->“OpenWorkspace in File…” Это — всё, что я хотел рассказать в первой части.
Сразу оговорюсь: на момент залива статьи на новый васм отладчик x64dbg - вполне годная альтернатива WinDbg.
Привет, я так понимаю эта статья и планируемый цикл ваше личное творчество? Несмотря на то, что в целом fasm не обделен доступными материалами в сети Интернет, втч труды Мики, я бы попросил вас закончить этот цикл и опубликовать его в разделе статей https://wasm.in/blogs/ Зачем это мне? Я имею контакты с неск. универами и уверен что местным студентам (и не только) ваш свежий, рассчитанный на новичков материал будет полезен.