Assembler для Windows

           

Введение

Изложу некоторые принципы, на которые я опирался, когда писал данную книгу.

1) Детальное изложение рассматриваемых вопросов. Я по-прежнему "не жалую" макросредства5 и считаю, что начинающим программистам их не стоит использовать. Однако цель, которую я преследую в книге: сблизить позиции MASM и TASM — потребует от нас знания и макросредств. Итак, макросредства будут играть в моей книге достаточно узкую подчиненную роль. Впрочем, в книге имеется глава, где подробно разбираются директивы и макросредства ассемблера.

2) Чтобы сделать изложение максимально полезным, все программы будут излагаться либо в двух вариантах - для MASM и для TASM, либо с подробным объяснением того, как перейти к другому ассемблеру. За основу взят пакет MASM версии 6.14 и TASM (TASM32.EXE версии 5.0,


TLINK32.EXE версии 1.6.71). Читателям рекомендуем пользоваться версиями не ниже указанных.

3) Книга содержит в себе изложение материала, начиная с простых программ и заканчивая элементами системного программирования. Поэтому книгу можно считать специальным учебным курсом по программированию в операционной системе Windows. Желательно (хотя не обязательно) знакомство читателя с языком Си и весьма желательно наличие начальных знаний по языку ассемблера. В качестве учебников по языку ассемблера можно рекомендовать книги [1,13].

4) Книга содержит обширный справочный материал для того, чтобы читатель не отвлекался на поиски его в других книгах и в Интернете. В Приложении 2 имеется справочник по командам микропроцессора с пояснениями. Более подробное объяснение команд можно найти в книгах [1,3,13].

5) Хорошее знание ассемблера помогает легко разбираться в коде программ. Взломщики чужих программ всегда хорошо владеют ассемблером. Вопросы анализа кода программ не часто рассматривают в компьютерной литературе. Знание этого не только не помешает любому программисту, но и поможет ему защищать свои программы более эффективно.

Начинающим программировать на языке ассемблера рекомендую начинать с глав первой части. Я не останавливаюсь на описании команд микропроцессора и отсылаю читателя к книгам [1,3,13] (см. также Приложение 2). Я также подробно разъясняю структуру программ для Windows.

Несколько слов скажу о нумерации глав в данной книге. Книга разбита на части, а те, в свою очередь, на главы. В каждой части своя нумерация глав. Полный номер главы состоит из номера части и номера главы в ней. Таким образом, Гл. 2.3 означает главу 3 из части 2. Номер рисунка содержит в себе номер части, номер главы и номер рисунка в главе.

Синонимами в данной книге являются такие термины, как: ассемблер и язык ассемблера; процедура, функция6, подпрограмма.


5 См. книгу автора "Assembler: учебный курс".

6 Согласитесь, что различия между понятиями процедура и функция могут существовать лишь в языках высокого уровня.