ПРЕДИСЛОВИЕ
Появление микропроцессоров в 60-х
годах cвязано с разработкой
интегральных схем (ИС). Интегральные
схемы объединяли себе различные
электронные компоненты в единый
элемент на силиконовом "чипе".
Разработчики установили этот
крошечный чип в устройство,
апоминающие сороконожку и включили
его в функционирующие системы. В
начале 70-х микрокомпьютеры на
процессоре Intel 8008 возвестили о
первом поколении микропроцессоров.
К 1974 году оявилось второе
поколение микропроцессоров oбщего
назначения Intel 8080. Данный успех
побудил другие фирмы к производству
этих или аналогичных процессоров. В
1978 году фирма Intel выпустила
процессор третьего поколения - Intel
8086, который обеспечивал некоторую
совместимость с 8080 и являлся
значительным продвижением вперед в
данной области. Для поддержки более
простых устройств и обеспечения
совместимости с устройствами
ввода/вывода того времени Intel
разработал разновидность процессора
8086 – процессор 8088, который в
1981 году был выбран фирмой iВМ для
ее персональных компьютеров. Более
развитой версией процессора 8088
является процесcор 80188, а для
процессора 8086 - процессоры 80186,
80286 и 80386, которые обеспечили
дополнительные возможности и
повыcили мощность вычислений.
Микропроцессор 80286, установленный
в компьютерах IBM AT появился в 1984
году. Все эти процессоры имеют
отношение к развитой архитектуре
процессоров фирмы Intel и
обозначаются как iAPX 86, iAPX 88,
iAPX 86, iAPX286 и iAPX386, где APX
- Intel Advanced Processor
Architecture. Распространение
микрокомпьютеров послужило причиной
пеpесмотра отношения к языку
ассемблера по двум основным
причинам. Во-первых, программы,
написанные на языке ассемблера,
требуют значительно меньше памяти и
времени выполнения. Во-вторых,
знание языка ассемблера и
результирующего машинного кода дает
понимание архитектуры машины, что
вряд ли обеспечивается при работе на
языке высокого уровня. Хотя
большинство специалистов в области
программного обеспечения ведут
разработки на языках высокого
уровня, таких как Паскаль или С, что
проще при написании программ,
наиболее мощное и эффективное
программное обеспечение полностью
или частично написано на языке
ассемблера. Языки высокого уровня
были разработаны для того, чтобы
избежать специальной технической
особенности конкретных
компьютеров. Язык ассемблера, в
свою очередь, разработан для
конкретной специфики компьютера или
точнее для специфики процессора.
Следовательно, для того, чтобы
написать программу на языке
ассемблера для конкретного
компьютера, следует знать его
архитектуру и данная книга содержит
весь необходимый базовый материал.
Для работы кроме этого материала и
оответствующих знаний необходимы
следующее:
- Доступ персональному компьютеру
IBM PC или совместимому с ним
c
оперативной памятью - минимум 64К и
одним дисководом. Лучше, но не
обязательно, если будет
дополнительная память и второй
дисковод или винчестер.
- Знакомство с руководством по
IBM PC.
- Дискета, содержащая транслятор
с языка ассемблера,
предпочтительно, но не обязательно,
последней версии.
- Копию операционной системы
PC-DOS или MS-DOS, лучше последней
версии.
Cледующее
является не обязательным для данной
темы:
- Опыт программирования. Хотя эти
знания могут помочь быстрее
освоить некоторые идеи
программирования, они не
обязательны.
- Хорошие знания в электронике
или схемотехнике. Данная книга
дает всю необходимую информацию об
архитектуре PC, которая требуется
для программирования на языке
ассемблера.
Операционные системы
----------------------
Назначение операционной системы -
позволить пользователю yправлять
работой на компьютере: вызывать для
выполнения конкретные программы,
обеспечивать средства для сохранения
данных (каталог), иметь доступ к
информации на диске.
Основной операционной системой для
PC и совместимых моделей является
MS-DOS фирмы Microsoft, известная
как PC-DOS для IBM PC. Особенности
некоторых версий: 2.0 обеспечивает
поддержку твердого диска
(винчестера),
3.0 применяется в компьютерах AT,
4.0 обеспечивает работу в
многопользовательском режиме.
Рассмотрение профессиональной
операционной
системы UNIX и ее аналога для PC
XENIX выходит за рамки данной книги.
Подход к книге
----------------
Данная книга преследует две цели:
она является учебником, a так же
постоянным справочным пособием для
работы. Чтобы наиболее эффективно
восполнить затраты на микрокомпьютер
и программное обеспечение,
необходимо
тщательно прорабатывать каждую главу
и перечитывать материал, котоpый не
сразу ясен. Ключевые моменты
находятся в примерах программ, их
следует
преобразовать в выполнимые модули и
выполнить их. Прорабатывайте
упражнения, приведенные в конце
каждой главы.
Первые восемь глав составляют
базовый материал для данной книги и
для
языка ассемблера. После этих глав
можно продолжить с глав 9, 11, 12,
14,
15, 19, 20 или 21. Связанными
являются главы с 8 по 10, 12 и 13, с
15 по
18, главы с 22 по 25 cодержат
справочный материал.
Когда вы завертшите работу с
книгой, вы сможете:
- понимать устpойство
персонального компьютера;
- понимать коды машинного языка и
шестнадцатиричный формат;
- понимать назначение отдельных
шагов при ассемблировании,
компановке и выполнении;
- писать программы на языке
ассемблера для управления экраном,
арифметических действий,
преобразования ASCII кодов в
двоичные
форматы, табличного поиска и
сортировки, дисковых операций
ввода/вывода;
- выполнять трассировку при
выполнении программы, как средство
отладки;
- писать собственные
макрокоманды;
- компановать вместе отдельные
программы.
Изучение языка ассемблера и
создание работающих программ - это
захватывающий процесс. Затраченное
время и усилия несомненно будут
вознаграждены.
Признательность автора
------------------------
Автор благодарен за помощь и
сотрудничество всем, кто внес
предложения и просматривал рукопись.
|