Вступление.

Послушайте, ребята, Что вам расскажет дед.

А.К. Толстой.

История государства Российского отГостомысж до Тимашева.

Для того чтобы приступить кизучению данной книги читатель должен иметь хотя бы минимум предварительныхзнаний. Что же нужно знать иуметь?

1 .Уметь работать с числами в различных системах счисления (двоичной, десятич­ной, шестнадцатеричной). Впрочем, при программировании на ассемблере такая сно­ровка быстро приобретается. Уметь работать с числами на битовом уровне - без этого нельзя понять, как работают сдвиговые и логические операции, как процессор работа­ет с отрицательными числами.

2. Совершенно необходимы некоторые навыки программирования, так как я не уделяю много внимания алгоритмической стороне проблемы. Такие навыки быстро приобретаются при программировании на одном из языков высокого уровня. Язык ассемблера слишком детален, чтобы начинать программировать именно с него. По своей идеологии язык ассемблера больше всего напоминает язык BASIC (в старом, DOS'obckom его варианте).

3. Иметь навыки работы в среде операционных системы MS DOS и Windows -знание команд, структуры файловой системы и т.д. Иметь хотя бы некоторое пред­ставление о работе со строковыми компиляторами и о командной строке.

В конце книги я привожу достаточно полный список компьютерной литературы, к которой Вы можете обратиться, если моя книга не оправдает почему-либо Ваших надежд.

Книгасостоитиз27глави9приложениЙ.Вприложенияявынес,в0:первых,спра-вочный материал, во-вторых, тот материал, который по каким-либо соображениям не нашел свое место в главах. Возможно, в будущем некоторые из этих приложений так­же превратятся в главы.

Книга писалась в два этапа, и это наложило на нее определенный отпечаток. Неко­торые главы были оставлены мною почти без изменения. Так осталась глава 10, в ко­торой фактически излагается программирование lOh-ого графического режима. По­скольку, однако, все, что изложено в ней, остается справедливым и для VGA, я ничего не стал менять, добавив лишь новую главу, где VGA и SVGA-адаптеры рассматрива­ются более подробно и дается большой справочный материал по регистрам видеосис­темы. То же можно сказать и о главе 5. Она была посвящена микропроцессору 80286. Я внес в нее лишь незначительные изменения, но добавил две главы. Одна из них посвящена программированию в защищенном режиме, а во второй дана сравнитель­ная характеристика микропроцессоров семейства Intel. В этих главах рассказывается, в частности, о новых возможностях микропроцессоров 80386,80486, Pentium.

Вместе с тем в книгу не вошел материал, устаревший явно. К такому материалу я отношу в первую очередь программирование давно устаревших видеосистем. Конечно, мне могут возразить, что видеорежимы остались. Однакоими уже никто не пользу­ется, так что не стоит о них и говорить.

Работая с моей книгой, Вы обратите внимание, что часть справочного материала вынесена в приложения, а часть содержится непосредственно в главах. Принцип здесь такой:вприложенияястаралсявьшоситьтуинформацию,котораяможетпонадобиться Вам при работе с разными главами. Например, в главе, посвященной программирова­нию мыши, содержится вся справочная информация по функциям драйвера мыши, посколькудля понимания других глав эта информация не нужна. Здесь опять напра­шивается аналогия из программирования - можно пользоваться процедурами, а мож­но и макроопределениями. Некоторый материал вынесен мною в приложения, по при­чине его небольшого объема и отсутствия связи с материалом в других главах и при­ложениях.

Те, кто уже знаком с языком ассемблера, может читать книгу в любом порядке. Начинающим же программистам я бы посоветовал первые восемь глав изучать по по­рядку, а далее действовать по своему усмотрению.

Какяужеупоминал, все приведенные в книге программы написаны мной. Лишьв некоторых случаях я писал программы, скажем так, по мотивам программ других ав­торов, используя некоторые их идеи. Нов этом случае я делаю специальные оговорки, ссылаясь на другие книги и авторов.

О терминологии.

Термины "транслятор", "транслирование" в данной книге являются синонимами терминов "ассемблер", "ассемблирование". Кроме того, термин "ассемблер" исполь­зуется нами как синоним термина "язык ассемблера".

Средства трансляции.

Большая часть программ вданной книгерассчитананаработустранслятором ас­семблера фирмы Микрософт MASM.EXE версии 5.0 (илидаже ниже) и редактора свя­зей той же фирмы LINKEXE (версии 4.0). Программа EXE2BIN.EXE1, используемая для старых версий LINK, чтобы преобразовывать программы формата ЕХЕ в програм­мы формата СОМ, теперь не нужна, т.к. программа LINK.EXE теперь самаделает всю работу. Те случаи, когда нам понадобятся программы трансляции более высоких версий (MASM версии 6.0, LINK версии 5.0), мы оговорим особо. В отдельных случаях нам понадобятся трансляторы TASM.EXE и TLINK.EXE (TASM32.EXE.TLINK32.EXE),ho и об этом читатель будет своевременно информирован.

Существовало довольно много заменителей программы EXE2BIN.EXE, но это уже история.

Книгу посвящаю моей жене Люде.