Нортон П., Соухе Д. I Язык ассемблера для IBM PC: Пер. с англ., — М.: Издательство «Компьютер», 1993 г. — 352 с -'ил ISBN 5-88201-008-Х Книга предназначена для читателей — программистов, желающих изучить язык ассемблера и возможности микропроцессоров 8088 с целью написания более мощных, быстрых и коротких программ. «Гроссмейстер» программирования Питер Нортон делится своим богатым опытом с читателями. Книга существенно расширяет кругозор пользователей IBM PC.
Введение
К тому времени, как вы закончите чтение этой книги, вы будете знать, как создавать полноценные программы на языке ассемблера: редакторы текста, утилиты, и т. д. Вы познакомитесь с техническими приемами про-
i фессионапьных программистов, облегчающих процедуру написания программ. Будут рассмотрены модульное кон-
. струирование программ ("modular design") и их пошаговое усовершенствование ("stepwise refinement"), которые
- наверняка удвоят вашу скорость программирования,
, а также помогут вам писать легко читаемые и более
'• надежные программы.
Техника пошагового усовершенствования, в частности, значительно облегчает написание сложных программ. Если вам уже приходилось испытывать ощущение, что вы тонете в собственной программе, то вы найдете, что пошаговое усовершенствование открывает вам простой и естественный путь написания программ. Кроме всего прочего, оно еще и довольно увлекательно.
Однако теория не является единственным содержанием этой книги. Мы также создадим программу, которая называется Dskpatch (может применяться для "починки" диска), и вы найдете ее полезной по нескольким причинам. Прежде всего, вы увидите пошаговое усовершенствование и модульное конструирование в действии в реальной программе, таким образом, у вас появится возможность узнать, почему эти методы так полезны. Кроме того, Dskpatch—это полноэкранный редактор общего назначения для работы с секторами диска, который может использоваться как самостоятельная программа и после прочтения книги.

Основная причина заключается в том, что программы на ассемблере понятны для любого IBM PC или совместимого с ним компьютера. По отношению ко всем остальным языкам программирования, ассемблер - язык, наиболее близкий к машинному. Он позволит вам ближе познакомиться с машиной (в отличие от языков программирования высокого уровня), и поэтому изучение ассемблера означает также изучение самого микропроцессора 8088. Мы не только обучим вас инструкциям микропроцессора, чем иногда ограничиваются авторы других книг, но пойдем значительно дальше и дадим дополнительный материал, важность которого вы оцените, когда начнете писать свои собственные программы.
После того, как вы познакомитесь с микропроцессором 8088, многие вещи в. различных программах, включая и написанные на языках высокого уровня, будут иметь для вас большее значение. Например, вы возможно замечали, что максимальное целое положительное число, применяемое в Бейсике, равно 32767. Откуда взялось это число? Это довольно странное число для верхнего предела. Но, как вы увидите позже, число 32767 непосредственно связано с тем, каким образом ваш компьютер хранит числа.
Кроме того, возможно вас интересует быстродействие и длина создаваемых программ. Как правило, программа, написанная на ассемблере, выполняется гораздо быстрее программы, написанной на любом другом языке. Обычно ассемблерные программы выполняются в два, три раза быстрее, чем эквивалентные программы Си или Паскаля, и в 15 и более раз быстрее, чем программы, пошагово интерпретируемые Бейсиком. Ассемблерные программы также значительно меньше по размеру. Так например, длина программы Dskpatch, которую мы вместе с вами напишем в этой книге, составит около одного килобайта. По сравнению с абсолютным большинством программ это немного. Похожие программы, написанные на Си или Паскале, будут длиннее раз в десять. Именно поэтому корпорация Lotus Development написала свой продукт Lotus 1-2-3 полностью на ассемблере.
Программы на ассемблере также открывают вам полный доступ к возможностям компьютера. Некоторые программы, например SideKick, ProKey и SuperKey, остаются в памяти компьютера .после того, как вы их запустите. Такие программы изменяют стиль работы вашей машины, они используют возможности,
доступные только для программ, написанных на ассемблере.
Dskpatch
В нашей работе с ассемблером мы подробно рассмотрим дисковые сектора, вывод на экран символов и чисел, хранимых DOS в шестнадцатеричном виде. Dskpatch - полноэкранный редактор дисков, позволяющий изменять символы и числа, хранящиеся на секторе диска. Используя Dskpatch, вы можете, например, просматривать сектор, где DOS хранит директорию диска и изменять имена файлов или иную информацию. Делая это, можно изучить то, как DOS хранит информацию на диске.
Так как Dskpatch содержит около 50 подпрограмм, а многие из них являются подпрограммами общего назначения, то они могут пригодиться вам при создании собственных программ. Фактически книга представляет собой не только введение в изучение микропроцессора 8088 и программирование на Ассемблере, но и источник полезных подпрограмм.
Кроме того, для создания любого экранного редактора используются возможности, характерные для всего семейства компьютеров IBM PC. С помощью примеров, приведенных в этой книге, вы также научитесь писать полезные программы для IBM PC, AT и совместимых компьютеров, таких как COMPAQ.
Требования к конфигурации компьютера
Какое оборудование необходимо, чтобы вы могли запускать программы, приведенные в этой книге? Вам нужен IBM PC или совместимый компьютер с, по крайней мере, 128К памяти и одним дисководом. Вам также понадобится MS DOS (или PC DOS) версии 2.00 или выше. И, начиная с Части III, вам потребуется IBM или Microsoft Macro Assembler.
Организация этой книги
Эта книга разделена на три части, каждая из которых имеет свои особенности. Вне зависимости от того, знаете вы или нет что-либо о микропроцессорах или ассемблере, вы найдете в ней главы, наверняка заинтересующие вас.

В Части I рассматривается микропроцессор 8088. Здесь вы познаете тайны битов, байтов и язык машины. Каждая из семи глав содержит изобилие реальных примеров, в которых используется программа Debug, входящая в пакет программ DOS. Debug позволит нам заглянуть внутрь микропроцессора 8088. Часть I подразумевает наличие у читателя, по крайней мере, начальных знаний Бейсика и того, как работать с компьютером.
Часть II, главы с 8 по 16 посвящены ассемблеру и написанию на нем программы. Подход к этому будет постепенным, и вместо того, чтобы заниматься описанием деталей самого ассемблера, мы сконцентрируем внимание на наборе команд ассемблера, необходимых для создания полезных программ.
Мы используем ассемблер также для того, чтобы переписать некоторые программы из части I и затем приступим к созданию Dskpatch. Мы будем создавать эту программу медленно, так что вы научитесь использовать пошаговое усовершенствование в построении больших программ. Заодно мы рассмотрим и чисто технические приемы (например такие, как модульное конструирование), которые помогут создать понятные программы. Как отмечалось выше, эти -методы упростят программирование, устраняя некоторые сложности, обычно ассоциирующиеся с написанием программ на ассемблере.
В части III, которая включает главы 17—29, мы сконцентрируем внимание на использовании дополнительных возможностей IBM PC — перемещении курсора и очищении экрана.
В части III мы также обсудим методы отладки больших ассемблерных программ. Программы, написанные на ассемблере, растут очень быстро и легко могут достигать длины двух и более страниц, не делая может быть при этом ничего полезного (Dskpatch будет гораздо длиннее). После того как мы используем эти отладочные методы на программах, размер которых превышает несколько страниц, вы найдете их полезными и для небольших программ.
Hosted by uCoz