РЕЦЕНЗИИ
Марек. Р. Ассемблер на примерах. Базовый курс. СПб: Наука и техника. 2005 - 240 с.
Как правило, ассемблер для PC-совместимых ПК изучают на примерах использования этого языка в системе MS-DOS с применением трансляторов Microsoft (MASM) и Borland (TASM). Однако возможен и иной подход, который демонстрирует автор рассматриваемой книги.
Она состоит из 15 глав, содержание которых в целом традиционно для подобного рода изданий: системы счисления, упрощенная схема работы процессора, наиболее часто используемые инструкции... Однако имеется и ряд особенностей. Так, в одной из глав рассматриваются теоретические аспекты операционных систем: методы реализации многозадачности, защита памяти, файловые системы, загрузка ОС. Значительно большее, чем обычно, внимание уделено программированию для Linux, а вот по Windows информация крайне скудна (впрочем, основное место все же занимает создание ассемблерных программ для MS-DOS). Но, пожалуй, самая важная особенность - использование во всех ОС транслятора с открытым исходным кодом NASM вместо традиционных для DOS и Windows MASM и TASM.
Принимая во внимание скромный объем книги и отсутствие на ее обложке надписи "самоучитель", следует признать это издание довольно удачным, хотя изучить по нему ассемблер сможет только читатель, неплохо владеющий каким-либо языком высокого уровня, поскольку автор совершенно не рассматривает такие темы, как постановка задачи, описание алгоритма ее решения и т. п. Кроме того, теоретическая часть слишком затянута, а практическая - недостаточно подробна, однако для читателя-программиста это вряд ли будет серьезной проблемой.
Не лишена книга и ряда безусловных недостатков. Иногда автор не совсем корректно использует некоторые термины (например, он заявляет, что микропроцессоры семейства x86 не имеют аппаратного стека, подразумевая под этим размещение стека в той же памяти, в которой хранятся код программы и данные, а не в некоем совершенно отдельном запоминающем устройстве), а замечания на историческую тематику вообще нередко бывают неверны - по крайней мере в буквальном понимании. Однако больше претензий вызывает местами не очень хороший перевод (так, команды циклического сдвига названы командами "ротации", а стековые кадры - стек-фреймами), а также довольно большое количество опечаток. Отсутствует полноценный справочный раздел по командам ассемблера (вероятно, предполагается, что читатель при необходимости будет использовать руководство Intel, размещенное на сайте корпорации). Наконец, книга не имеет CD или хотя бы дискеты с текстами примеров.
В целом это издание можно рекомендовать программистам, не сталкивавшимся ранее с ассемблером, но желающим познакомиться с ним без лишних финансовых затрат на дорогие книги, особенно в тех случаях, когда их "родной" ОС является Linux.