Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…
… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.
UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Для книг я выкладываю только названия, без ссылок (или с ссылкой на интернет-магазин), так как я не знаю отношения некоторых людей к скачиванию чьей-то интеллектуальной собственности. Кому надо — тот найдет, где скачать.
Надеюсь эта статья будет полезна как новичкам, так и тем, кто ищет новых знаний. Если вы знаете какие-либо интересные ресурсы по теме, смело пишите в комментарии, пост создавался, чтобы пополняться.
P.S.: И, да, я очень надеюсь не увидеть в комментариях холивар Assembler vs. %anything% (или «стоит ли изучать ассемблер?»).
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…
… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.
UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Для начала
- ru.wikipedia.org/wiki/Ассемблер — ассемблер (не тоже самое, что «язык ассемблера», хотя эти понятия почти слились) в википедии
- ru.wikipedia.org/wiki/Язык_ассемблера — язык ассемблера там же
- wasm.ru/article.php?article=onebyte — история одного байта
- bitfry.narod.ru/00.htm — дневники чайника, довольно простые и интересные уроки для начинающих
- www.scribd.com/doc/267365/A-Beginners-Course-In-Assembly-Language — книга об основах ассемблера на английском языке
- Programming from the Ground Up — несложная книга на английском языке. Рекомендация megabrain
- www.osinavi.ru/asm — учебник по Ассемблеру «для квалифицированных чайников»
- habrahabr.ru/blogs/asm — блог, в котором, надеюсь, будет много статей об ассемблере
Ресурсы
- wasm.ru — наверное, самый крупный русскоязычный ресурс по Ассемблеру. Огромное количество статей, живой форум, новости
- cracklab.ru — огромный ресурс по исследованию/крэкингу программ
- www.insidepro.com/rus/doc.shtml — огромнейшее собрание статей Криса Касперски
- programmersclub.ru/assembler — курс asm&&win32
- www.proklondike.com/books/assembler.html — мини-библиотека книг по ассемблеру
- wiki.conus.info — большое количество заметок о reverse engineering на русском языке для начинающих и тех кто хочет научиться понимать создаваемый C/C++ компиляторами код
- wasm.ru/publist.php?list=1 — Уроки Iczelion'а переведенные
- www.nf-team.org/drmad/zf/zf1/zf1_006.htm — пособие начинающей технокрысы или как писать вирусы
Книги
Для книг я выкладываю только названия, без ссылок (или с ссылкой на интернет-магазин), так как я не знаю отношения некоторых людей к скачиванию чьей-то интеллектуальной собственности. Кому надо — тот найдет, где скачать.
- kpnc.opennet.ru — архив книг Криса Касперски
- Галисеев Г. В. Ассемблер для Win 32. Самоучитель
- Зубков С. В. Ассемблер для DOS, Windows и UNIX
- Кип Ирвин. Язык ассемблера для процессоров Intel = Assembly Language for Intel-Based Computers
- Калашников О. А. Ассемблер? Это просто! Учимся программировать
- Крис Касперски. Искусство дизассемблирования
- Владислав Пирогов. Ассемблер для Windows
- Владислав Пирогов. Ассемблер и дизассемблирование
- Ричард Саймон. Microsoft Windows API Справочник системного программиста
- Фрунзе А. В. Микроконтроллеры? Это же просто!
- Юров В., Хорошенко С. Assembler: учебный курс
- Абель — Ассемблер. Язык и программирование для IBM PC
- Эндрю Таненбаум — «Архитектура компьютера» — рекомендация lefty
- Чарльз Петцольд — «Код» — рекомендация lefty
- Assembly Language Step-by-step: Programming with DOS and Linux
- Юрий Ревич «Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера» — рекомендация Ryav
- Нортон П., Соухе Д. «Язык ассемблера для IBM PC» — рекомендация maotm
- Григорьев В. Л. «Микропроцессор i486. Архитектура и программирование.» — рекомендация Ghost_nsk
- Нортон П., Уилтон Р. «IBM PC и PS/2.руководство по программированию» — описана работа с прерываниями и простыми железками, рекомендация Ghost_nsk
Англоязычные ресурсы
- asm.sourceforge.net — Ассемблер под Linux
- orangejuiceliberationfront.com/intel-assembler-on-mac-os-x — Ассемблер под Mac
- blogs.conus.info — Различные заметки о reverse engineering, security research, Oracle RDBMS internals, и т.д...
- msdn.microsoft.com — огромная база знаний по технологиям Windows от Microsoft
- www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html — мануалы по Intel'овским инструкциям
- developer.amd.com/documentation/guides/Pages/default.aspx#manuals — аналогичные доки для AMD
- win32assembly.online.fr — Уроки Iczelion'а, домашняя страница
- www.gnu.org/s/gdb/documentation — GDB Manual
- www.securitytube.net/groups?operation=view&groupId=6 — видеокурс Windows Assembly Language Megaprimer
- www.securitytube.net/groups?operation=view&groupId=5 — видеокурс Assembly Language Megaprimer for Linux
- alexfru.narod.ru/emiscdocs.html — подборка доков из теплых ламповых времен
- www.agner.org/optimize — Software optimization resources
- x86asm.net — x86-x64 manuals
- www.ctyme.com/rbrown.htm — Ralf Brown Interrupt List with over 9000 linked pages and 350 indexes making the process of searching much easier
Инструменты
- www.masm32.com — MASM32 SDK
- flatassembler.net — flat assembler (FASM)
- www.nasm.us — The Netwide Assembler (NASM)
- www.ollydbg.de — OllyDbg, отладчик для Windows
- www.hex-rays.com/products/ida/index.shtml — IDA — интерактивный дизассемблер и отладчик
- www.idapro.ru — русская страница IDA
- research.microsoft.com/en-us/projects/detours — Библиотека от Microsoft Research для инъекции Dll и перехвата управления на себя
- conus.info/gt — отладчик командной строки для выполнения простых отладочных задач
Программинг микроконтроллеров
- habrahabr.ru/blogs/controllers — тематический блог на хабре, с количеством постов несколько большим, чем в блоге по ассемблеру
- programmators.ru — сайт по контроллерам семейства PIC
- myrobot.ru/stepbystep — сайт роботостроения, по ссылке статьи о микроконтроллерах AVR
- www.123avr.com/07.htm — МК AVR
- easyelectronics.ru/category/avr-uchebnyj-kurs — AVR
Прочее
- zx.pk.ru — форум ZX Spectrum
- bbs.pediy.com — форум по reverse engineering на китайском языке (спасибо KollinZ). Чтобы можно было понять о чем речь, можно воспользоваться кнопкой «перевести» в хроме (спасибо за совет mexanism)
- old-dos.ru — крупнейший в Рунете архив старых программ
Заключение
Надеюсь эта статья будет полезна как новичкам, так и тем, кто ищет новых знаний. Если вы знаете какие-либо интересные ресурсы по теме, смело пишите в комментарии, пост создавался, чтобы пополняться.
P.S.: И, да, я очень надеюсь не увидеть в комментариях холивар Assembler vs. %anything% (или «стоит ли изучать ассемблер?»).