| Автор | Григорьев В. |
|---|---|
| Год издания | 1987 |
| Город | Москва |
| Издательство | Энергоатомиздат |
ПРЕДИСЛОВИЕ РЕДАКТОРА
Бурное развитие и широкое распространение микропроцессоров, микропроцессорных устройств и систем разнообразного назначения (от простейших контроллеров объектов до высокопроизводительных систем обработки данных) породило устойчивый и постоянно возрастающий интерес к публикациям по микропроцессорным средствам со стороны инженерно-технических работников самых разнообразных специальностей. Этот читательский интерес во многом удовлетворен центральными издательствами нашей страны, которые в последние годы выпустили ряд монографий советских и зарубежных авторов, посвященных этой тематике. Эти издания в некоторой степени удовлетворили читательский спрос на литературу, в которой отражен ряд вопросов организации, особенностей работы и специфики применения микропроцессорных устройств и систем. Однако номенклатура средств микропроцессорной техники, выпускаемой Отечественной промышленностью, постоянно растет, а сама микропроцессорная техника стремительно совершенствуется и усложняется. Этот процесс сопровождается возрастающей потребностью в публикациях, которые посвящены изложению вопросов,связанных со структурной организацией новейших микропроцессоров, архитектурой систем на их основе, средствами и методами программирования и разработки системного и прикладного программного обеспечения.
В настоящей книге рассматриваются вопросы программирования высокопроизводительного однокристального 16-разрядного микропроцессора К1810ВМ86 на языке ассемблера.
Основная особенность книги заключается в том, что систематическое описание средств языка ассемблера и системы команд микропроцессора позволяет автору подробно и доказательно (с использованием многочисленных примеров программ) изложить особенности внутренней организации микропроцессора К1810ВМ86 и его функционирование в системах обработки данных. Книга является уникальной в том смысле, что в ней с предельной степенью детализации излагаются вопросы программирования микропроцессора К1810ВМ86 на языке ассемблера с тщательным учетом влияния особенностей работы этого сложного прибора на эффективность ассемблерных программ.
Следует отметить, что микропроцессор К1810ВМ86 предназначен прежде всего для использования в профессиональных персональных компьютерах типа ЕС 1840 н в специализированных высокопроизводительных «интеллектуальных» контроллерах объектов н процессов. Сложная внутренняя организация микропроцессора, его система команд с многочисленными и нетривиальными режимами адресации, архитектура систем, основным атрибутом которой является сегментная структура памяти, предопределяют использование языков высокого уровня для программирования микропроцессора и, следовательно, высокоэффективных трансляторов, которые позволяют программисту не знать детален внутренней организации микропроцессора. Однако в тех случаях, когда в силу специфики задачи или внешних условий работы микропроцессора необходимо обеспечить предельное быстродействие микропроцессора или предельную плотность упаковки прикладных программ в памяти системы, программирование па языке ассемблера является предпочтительным. Б то же время программирование иа языке ассемблера сопряжено с необходимостью детального знания особенностей внутренней организации микропроцессора. Гакос знание редко встречается у специалистов по программированию. Поэтому уникальность данной книги состоит в том, что в ней автор, специалист по микропроцессорной технике, на высоком профессиональном уровне описывает специфику организации микропроцессора КД8ЮВМ86 и адресует это описание тем программистам, перед которыми стоит задача разработки предельно эффективных прикладных программ, т. е. программ, написанных на языке ассемблера.
Продуманная методика изложения материала, многочисленные примеры программ и хороший иллюстративны» м<1 тер нал книги позволят читателю в полном объеме осмыслить детали внутренней организации микропроцессора К1810ВМ86 и особенности его взаимодействия с устройствами памяти и ввода-вывода информации.
Достоинства книги позволяют надеяться, что она окажется полезной для специалистов, связанных с использованием профессиональных персональных компьютеров, и для разработчиков специализированных устройств и систем обработки данных и управления.
В. В. Сташин
ПРЕДИСЛОВИЕ АВТОРА
Появившиеся в начале 70-х годов первые 4- и 8-битные микропроцессоры применялись в основном как программируемые логические устройства в калькуляторах, специалиалированных управляющих системах и т. д. Массовое производство более сложных 8-битных микропроцессоров привело к разработке систем, ресурсов которых оказалось достаточно для реализации простых задач обработки данных и более сложных управляющих функций. Однако и микропроцессоры, типичным представителем которых является микропроцессор КР58ИК80, по диапазону адресации памяти, быстродействию и возможностям обработки данных значительно уступали процессорам мини-ЭВМ. В начале 80-х годов успехи микроэлектроники позволили довести плотность упаковки до нескольких десятков тысяч транзисторов на кристалле, что привело к появлению микропроцессоров нового поколения. Среди них наиболее известиым и перспективным является 16-битный микропроцeccop К1810ВМ86, который применяется в персональных компьютерах EC1840 и «Искра-1030». Ои продолжает тенденцию разработок однокристальных микропроцессоров с фиксированными длиной слова и системой команд. Производительность этого микропроцессора примерно на порядок выше производительности его предшественника КР580ИК80, а по функциональным возможностям он приближается к процессорам мини-ЭВМ и в некоторых отношениях даже превосходит их. Важно подчеркнуть, что архитектуру микропроцессора К1810ВМ86 нельзя рассматривать как простое расширение архитектуры микропроцессора КР580ИК80. Прямая программная совместимость между ними на уровне языка ассемблера отсутствует. Однако ассемблерные программы микропроцессора КР580ИК80 можно преобразовать для выполнения на микророцессоре К1810ВМ86, но обратный переход очень сложен и вряд ли потребуется на практике.
В микропроцессоре К1810ВМ86 имеются возможности и средства работы с операционными системами, мультипрограммирования, организации мультипроцессорных систем, обработки сложных структур данных и эффективной реализации языков высокого уровня. Адресное пространство памяти равно 1 Мбайту (1 048 576 байт). Он оперирует с форматами данных, которые включают в себя биты, байты, слова (16бит), длинные слова (32 бита), упакованные и неупакованные десятичные данные, цепочки бант и слов. Система команд включает в себя команды умножения и деления чисел с фиксированной точкой. Хотя число базовых команд около 100, наличие многочисленных режимов адресации привело к тому, что общее число различных машинных команд составляет несколько сотен. Это обстоятельство, а также сложный формат команд с несколькими полями и длиной, варьирующейся от 1 до 6 байт, препятствует разработке программ на машинном языке и делает достаточно сложным программирование на языке ассемблера.
Прямыми следствиями расширения возможностей микропроцессоров являются все более громоздкое и сложное описание их функционирования н усложнение языка ассемблера. Настоящая книга призвана познакомить инженерно-технических работников и студентов старших курсов, специализирующихся в области вычислительной техники, с архитектурой и основами программирования на языке ассемблера микропроцессора К1810ВМ86. Она построена таким образом, что читатель после ее изучения сможет программировать сравнительно простые прикладные задачи, а по мере накопления опыта переходить к более сложным.
Ориентация на язык ассемблера объясняется следующими обстоятельствами. Разработка прикладных программ ведется либо на одном из языков высокого уровня, либо на языке ассемблера, у каждого из которых имеются свои достоинства и недостатки. Основные положительные качества языков высокого уровня связаны с удобством и быстротой программирования, компактностью и «самодокумеитированием» программ, меньшим числом ошибок и т. п. Главные преимущества языка ассемблера проявляются в уменьшении времени выполнения программ и доступности для программиста всех ресурсов системы, часть из которых недоступна при программировании на языках высокого уровня.
Известно, что в типичной программе значительная часть выполняемых процессором операций приходится на небольшую секцию или несколько секций программы. Поэтому на практике целесообразно локализовать такие секции и запрограммировать их как ассемблерные модули, а большую часть решаемой задачи запрограммировать на языке высокого уровня. Например, в матричных операциях часто встречается вычисление скалярного произведения, которое для повышения производительности следует запрограммировать на языке ассемблера. Кроме того, язык ассемблера незаменим при разработке программ для многочисленных специализированных ЭВМ.
Основу книги составляют материалы лекций, прочитанных автором в Рязанском радиотехническом институте для студентов специальности «Электронные вычислительные машины» и на курсах повышения квалификации инженерно-технических работников.
Считаю приятным долгом выразить благодарность рецензенту доктору техн. наук, профессору Б. М. Кагану и редактору канд. техн. наук, доценту В. В. Сташину, замечания которых способствовали улучшению содержания книги. Заранее благодарю всех читателей, которые сочтут возможным высказать свои предложения и замечания.
Автор