РЕЦЕНЗИИ
Ирвин К. Р. Язык ассемблера для процессоров Intel. М.: Вильямс, 2005. - 912 с.
Несмотря на то что в настоящее время подавляющая часть ПО создается на языках высокого уровня, ассемблер продолжают изучать в вузах, готовящих программистов, ведь без глубокого понимания того, как же работают компьютеры, стать по-настоящему хорошим специалистом вряд ли можно. Естественно, обучение требует наличия соответствующих пособий, одним из которых и является рецензируемая книга.
Этот толстенный фолиант состоит из 17 глав и шести приложений, охватывающих весь курс ассемблера, читаемый в ряде американских университетов. Сначала, как обычно, рассматривается упрощенная структура процессора и компьютера в целом, далее излагаются правила работы с числами, записанными в различных системах счисления, а также булева алгебра. Основную же часть книги составляет описание архитектуры и системы команд современных 32-разрядных процессоров фирмы Intel, причем в отличие от большинства публикаций, посвященных ассемблеру, упор делается на изучении защищенного режима и создании программ под Windows, а не реального режима, используемого в MS-DOS, хотя программированию для этой системы и уделена часть книги. Среди "продвинутых" вопросов, освещенных в этом учебнике, можно выделить применение макросредств, предоставляемых трансляторами TASM и MASM, работу с дисками с помощью прерываний BIOS и использование математического сопроцессора.
Наиболее полезными приложениями являются справочники по системе команд 32-разрядных процессоров фирмы Intel, по прерываниям BIOS и MS-DOS и по директивам транслятора MASM.
Эту публикацию отличает весьма фундаментальный характер: сразу видно, что она задумывалась не как самоучитель, а как университетский учебник, предназначенный для достаточно подготовленного читателя (в частности, требуется умение программировать на каком-либо языке высокого уровня). Строгое и несколько сухое изложение материала, характерное для этой книги, имеет преимуществом то, что в голове внимательного читателя вряд ли возникнет каша из разрозненных и подчас не слишком правильных сведений, однако такой подход несколько затрудняет чтение.
Некоторые утверждения автора вызывают недоумение. Например, он считает, что "многозадачная ОС может работать только на тех процессорах, которые поддерживают режим переключения задач" (с. 82); между тем многозадачные ОС, переключающие задачи чисто программным способом ("ручным" сохранением и восстановлением регистров и другой важной информации), появились намного раньше, чем были созданы механизмы аппаратного переключения задач, подобные принятому в микропроцессорах фирмы Intel. Более того, "зацикленность" автора на технических решениях Intel и умалчивание альтернативных вариантов может сыграть негативную роль, если в дальнейшем читателю придется работать с процессорами другой архитектуры.
Несмотря на указанные недостатки, книга в целом вполне соответствует своему предназначению учебника для вузов и может с успехом использоваться в таком качестве.