Как писать на ассемблере в 2018 году

Автор: admin от 2-01-2018, 13:05, посмотрело: 72

Как писать на ассемблере в 2018 году


Статья посвящена языку ассемблер с учетом актуальных реалий. Представлены преимущества и отличия от ЯВУ, произведено небольшое сравнение компиляторов, скрупулёзно собрано значительное количество лучшей тематической литературы.

Writing A Useful Program With NASM», Konstantin Boldyshev asmutils — Linux Assembly, на русском языке есть книга Столярова (Сайт А.В. Столярова).




GoAsm


Слабая


Большая часть синтаксиса описана в руководстве, и опытный пользователь найдет то, что ищет. Множество руководств и размещено на сайте (http://www.godevtool.com/). Несколько учебников GoAsm:






HLA


Обширая


HLA имеет справочное руководство на 500 страниц. Сайт содержит десятки статей и документацию по HLA.




MASM


Хорошая


Компанией Microsoft написано значительное количество документацию для MASM, существует большое количество справочников написанных для этого диалекта.




NASM


Хорошая


Авторы NASM больше пишут программное обеспечение для этого диалекта, оставляя написание руководства на «потом». NASM существует достаточно долго, поэтому несколько авторов написали руководство для NASM Джефф Дунтеман (Jeff Duntemann) «Assembly Language Step-by-Step: Programming with Linux».




RosAsm


Слабая


не очень интересные «онлайновые учебники».




TASM


Хорошая


Компания Borland в свое время выпускала отличные справочные руководства, для TASM были написаны справочные руководства авторами-энтузиастами не связанными с фирмой Borland. Но Borland больше не поддерживает TASM, поэтому большая часть документации, предназначенная для TASM, не печатается и ее становится всё труднее и труднее найти.







Учебники и учебные материалы



Документация на самом ассемблере, конечно, очень важна. Еще больший интерес для новичков и других, изучающих язык ассемблера (или дополнительные возможности данного ассемблера), - это наличие документации за пределами справочного руководства для языка. Большинство людей хотят, чтобы учебник, объясняющий, как программировать на ассемблере, не просто предоставляет синтаксис машинных инструкций и ожидает, что читателю объяснят, как объединять эти инструкции для решения реальных проблем.



MASM является лидером среди огромного объема книг, описывающих, как программировать на этом диалекте. Есть десятки книг, которые используют MASM в качестве своего ассемблера для обучения ассемблеру.



Большинство учебников по ассемблеру MASM/TASM продолжают обучать программированию под MS-DOS. Хотя постепенно появляются учебники, которые обучают программированию в Windows и Linux.
































Комментарии
FASMНесколько учебников, в которых описывается программирование на FASM:



Gas

Учебник с использованием синтаксиса AT&T

HLA

32-разрядная версия «The Art of Assembly Language Programming» (существует и в электронной, и в печатной форме), программирование под Windows или Linux

MASM

большое количество книг по обучению программированию под DOS. Не очень много книг о программировании под Win32/64 Пирогов, Юров, Зубков, Фленов

NASM

много книг, посвященных программированию в DOS, Linux, Windows. В книге Джеффа Дунтемана «Assembly Language Step-by-Step: Programming with Linux» используется NASM для Linux и DOS. Учебник Пола Картера использует NASM (DOS, Linux).

TASM

Как и для MASM, для TASM было написано большое количество книг на основе DOS. Но, так как Borland больше не поддерживает этот продукт, писать книги об использовании TASM перестали. Том Сван написал учебник, посвященный TASM, в котором было несколько глав о программировании под Windows.





3. Литература и веб ресурсы



Beginners




  • Абель П. Язык Ассемблера для IBM PC и программирования. – М.: Высшая школа, 1992. – 447 с.

  • Брэдли Д. Программирование на языке ассемблера для персональной ЭВМ фирмы IBM.– М.: Радио и связь, 1988. – 448 с.

  • Галисеев Г.В. Ассемблер IBM PC. Самоучитель.: – М.: Издательский дом «Вильямс», 2004. – 304 с.: ил.

  • Дао Л. Программирование микропроцессора 8088. – М.: Мир, 1988. – 357 с.

  • Жуков А.В., Авдюхин А.А. Ассемблер. – Спб.: БХВ-Петербург, 2003. – 448 с.: ил.

  • Зубков С.В., Ассемблер для DOS, Windows и UNIX. – М.: ДМК Пресс, 2000. – 608 с.: ил. (Серия «Для программистов»).

  • Ирвин К. Язык ассемблера для процессоров Intel, 4-е издание.: пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 912 с.: ил. – Парал. тит. англ.

  • Нортон П., Соухэ Д. Язык ассемблера для IBM PC.– М.: Компьютер, 1992.– 352 с.

  • Пильщиков В.Н. Программирование на языке ассемблера IBM PC.– М.: ДИАЛОГ-МИФИ, 1994–2014 288 с.

  • Скляров И.С. Изучаем ассемблер за 7 дней www.sklyaroff.ru





  • Advanced




  • Касперски К. Фундаментальные основы хакерства. Искусство дизассемблирования. – М.: СОЛОН-Пресс, 2004. 448 с. – (Серия «Кодокопатель»)

  • Касперски К. Техника отладки программ без исходных текстов. – Спб.: БХВ-Петербург, 2005. – 832 с.: ил.

  • Касперски К. Компьютерные вирусы изнутри и снаружи. – Спб.: Питер, 2006. – 527 с.: ил.

  • Касперски К. Записки исследователя компьютерных вирусов. – Спб.: Питер, 2006. – 316 с.: ил.

  • Кнут Д. Искусство программирования, том 3. Сортировка и поиск, 2-е изд.: пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 832 с.: ил. – Парал. тит. англ.

  • Колисниченко Д.Н. Rootkits под Windows. Теория и практика программирования «шапок-невидимок», позволяющих скрывать от системы данные, процессы, сетевые соединения. – Спб.: Наука и Техника, 2006. – 320 с.: ил.

  • Лямин Л.В. Макроассемблер MASM.– М.: Радио и связь, 1994.– 320 с.: ил.

  • Магда Ю. Ассемблер для процессоров Intel Pentium. – Спб.: Питер, 2006. – 410 с.: ил.

  • Майко Г.В. Ассемблер для IBM PC.– М.: Бизнес-Информ, Сирин, 1997.– 212 с.

  • Уоррен Г. Алгоритмические трюки для программистов, 2-е изд.: пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 512 с.: ил. – Парал. тит. англ.

  • Скляров И.С. Искуство защиты и взлома информации. – Спб.: БХВ-Петербург, 2004. – 288 с.: ил.

  • Уэзерелл Ч. Этюды для программистов: Пер. с англ. – М.: Мир, 1982. – 288 с., ил.

  • Электронная библиотека братьев Фроловых www.frolov-lib.ru

  • Чекатов А.А. Использование Turbo Assembler при разработке программ.– Киев: Диалектика, 1995.– 288 с.

  • Юров В. Assembler: специальный справочник.– Спб.: Питер, 2001.– 496 с.: ил.

  • Юров В. Assembler. Практикум. 2-е изд. – Спб.: Питер, 2006. – 399 с.: ил.

  • Юров В. Assembler. Учебник для вузов. 2-е изд. – Спб.: Питер, 2007. – 637 с.: ил.

  • Пирогов В. Assembler учебный курс. 2001 Нолидж

  • Пирогов В. АССЕМБЛЕР учебный курс 2003 Нолидж-БХВ

  • Пирогов В. Assembler для windows 

    1-ое издание - М.: изд-во Молгачева С.В., 2002 

    2-ое издание - СПб.:. БХВ-Петербург, 2003 - 684 с.: ил. 

    3-ье издание - СПб.:. БХВ-Петербург, 2005 - 864 с.: ил. 

    4-ое издание - СПб.:. БХВ-Петербург, 2012 - 896 с.: ил.

  • Пирогов В. Ассемблер на примерах. - СПб.:. БХВ-Петербург, 2012 - 416 с.: ил.

  • Пирогов В. АССЕМБЛЕР и дизассемблирование. - СПб.:. БХВ-Петербург, 2006. - 464 с.: ил.

  • Пирогов В. работа над книгой '64-битовое программирование на ассемблере (Windows,Unix)'. В книге рассматривается программирование на fasm в 64-разрядных Windows и Unix

  • Юров В., Хорошенко С. Assembler: учебный курс.– Спб.: Питер, 1999. – 672 с.

  • Ю-Чжен Лю, Гибсон Г. Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектирование микрокомпьютерных систем.– М.: Радио и связь, 1987.– 512 с.

  • Intel ® 64 and IA-32 Architectures Optimization Reference Manual

  • Intel ® 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture

  • Intel ® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M

  • Intel ® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z

  • Intel ® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1

  • Intel ® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide, Part 2

  • Leiterman J.C. 32/64-BIT 80x86 Assembly Language Architecture. © 2005, Wordware Publishing, Inc (568 pages) 2320 Los Rios Boulevard Plano, Texas 75074

  • Turbo Assembler® Version 3.2 User's Guide Borland International. Inc 1800 Green Hills Road P.O. BOX 660001, Scotts Valley, CA 95067-0001

  • Статьи с сайта wasm.in

  • Статьи с сайта sasm.narod.ru

  • Сайт MASM32 и форум

  • Сайт FASM и форум

  • Сайт NASM





  • 4. Практика



    Итак, вы уже знаете, что такое ассемблер и с чем его едят. Вы запаслись парой/тройкой книг и веб мануалами, возможно определились и с компилятором… К сожалению уроки программирования выходят за рамки данной статьи, но для тех чей выбор пал на MASM/FASM можете воспользоваться следующими макетами:





    Остается открытым вопрос, в каком редакторе писать код? Кто-то пишет в блокноте и компилирует через командную строку, более смекалистые готовят скрипты – упрощая процесс, другие же используют специальные среды разработки. Да, есть IDE и в области низкоуровневого программирования, их обзор также выходит за рамки статьи. Однако пользуясь возможностью, осмелюсь предложить вам попробовать свою среду для программирования на ассемблере – ASM Visual. Кроме базовых возможностей, отличается от аналогов наличием инструментов рефакторинга, метрик кода, в целом более интуитивно понятными интерфейсами и собственным типом проекта.





    Желаем вам, друзья, значительных достижений и новых знаний в 2018 году!

    С уважением

    Михаил Смоленцев MiklIrk (Иркутский государственный университет путей сообщения),

    Алексей Гриценко expressrus (Донской государственный технический университет).




    Ps1: Уважаемый, Хабрахабр! Добавьте в ваш редактор подсветку ассемблера (Intel-синтаксис), это пригодиться для будущих статей!

    Ps2: В скором времени мы запустим портал с тестами (вопрос – варианты ответа) на знание ассемблера и архитектуры компьютера. Тесты будут структурированы по уровню сложности. Если вы преподаете ассемблер или имеете достаточные знания в этой области – напишите нам на почту express-rus@yandex.ru вы можете принять участие предложив свой тест в систему.

    Источник: Хабрахабр

    Категория: Программирование » Game Development

    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *