ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА

Изменение технологии обработки информации в немалой степени определяется уровнем развития вычислительных машин универсального назначения - массовых по выпуску, успешно используемых для различных приложений и доступных для многих пользователей. На каждом этапе развитии вычислительной техники можно выделить весьма популярные в свое время и достаточно широко распространённые семейства ЭВМ универсального назначения такие, как наверняка известные читателю ЭВМ серии IBM 360/370 или мини-ЭВМ серии PDP-11. Архитектура (организация ЭВМ с точки зрения программиста) этих двух семейств ЭВМ, являющихся представителями ЭВМ разных классов - "большие" и мини-ЭВМ, стала поистине классическим примером, на их основе изучают организацию вычислительных машин и систем, учат программировать на языках ассемблера. В один ряд с названными семействами ЭВМ несомненно можно поставить и семейство ЭВМ VAX, разработанное как и семейство PDP-11 американской фирмой Digital Equipment Corporation (DEC).

ЭВМ семейства VAX относятся к классу супермини-ЭВМ. Это 32-разрядные ЭВМ, обеспечивающие поддержку виртуальной памяти со страничной организацией. Именно расширенное виртуальное адресное пространство - 4 Гбайта, которое потенциально может использоваться программами, является наиболее привлекательной особенностью ЭВМ семейства VAX, что и подчёркнуто в самом названии VAX - Virtual Address extension. Как предмет изучения, архитектура VAX интересна тем, что является логическим расширением архитектуры PDP-11, образцом блестящего последовательного подхода при создании новой вычислительной техники. Сохраняя преемственность с архитектурой PDP-11 и опираясь на её основные решения, архитектура VAX не просто новая проекция старой архитектуры, её чисто шаблонное повторение. Включение в архитектуру новых типов данных и режимов адресации, используемых с данными любого типа, расширение набора инструкций и другие решения, всё это позволяет достичь в архитектуре VAX новых качественных изменений - "расширение" старой архитектуры становится многомерным, образно говоря, происходит как бы переход из плоскости в объём. Поскольку управление виртуальной памятью поддерживается единым комплексом технических и программных средств, рассматривая архитектуру VAX, также нельзя не заметить сказавшегося на ней влияния разработки программных средств, а именно операционной системы для ЭВМ с архитектурой VAX, получившей название VAX/VMS (VMS - система виртуальной памяти), создание которой велось одновременно с разработкой аппаратуры.

Семейство ЭВМ VAX открывает серия ЭВМ VAX-11, первая модель этой серии VAX-11/780, анонсированная в 1977 г., сейчас рассматривается как эталон вычислительной машины с быстродействием 1 млн оп./с. Несколько позже по времени появилась параллельная ветвь супермикроЭВМ - серия MicroVAX. В настоящее время серию VAX-11 полностью заменила серия VAX 8000 и новая ветвь - серия VAX 6000. Семейство ЭВМ VAX на сегодня насчитывает большое число разных моделей ЭВМ, существенно различающихся по производительности и стоимости, сюда же можно отнести и мультимашинные комплексы типа кластер. Но тем не менее, все эти ЭВМ объединяет общая для них архитектурa VAX, что позволяет достичь полной программной совместимости между всеми моделями семейства.

В последние годы появились отечественные разработки вычислительных машин с архитектурой VAX это ЭВМ "Электроника 82" и СМ 1700; также подобные разработки велись и в странах СЭВ ЭВМ ИЗОТ 1055 С (БНР) и ТРА 580 (ВНР). Хотя все эти ЭВМ представляют самостоятельное и независимое исполнение архитектуры VAX, по своим функциональным решениям они в основном повторяют модели серии VAX-11. Прототипом операционной системы VAX/VMS для этих ЭВМ является операционная система МОСВП.

Предлагаемая вниманию читателей книга представляет собой введение в язык ассемблера и архитектуру ЭВМ VAX. Материал излагается на примере ассемблера VAX MACRO, входящего в состав операционной системы VAX/VMS. Книга построена как учебный курс, позволяющий сформировать довольно полное общее представление об особенностях ЭВМ семейства VAX. Кроме ассемблера и архитектуры ЭВМ VAX, в книге рассматриваются элементы операционной системы VAX/VMS. Книга включает множество практических примеров и заданий, способствующих усвоению пройденного материала. Ознакомившись буквально с первыми главами книги, читатель может начать осваивать полученные знания на практике - за терминалом вычислительной системы. В приложениях приводятся основные команды операционной системы VAX/VMS и редактора текста EDT. Тем не менее, несмотря на довольно большой объём книги, она приоткрывает только верхушку айсберга, который называется архитектура VAX и операционная система VAX/VMS.

Несколько слов о терминологии, поскольку в мнемонику инструкций языка ассемблера VAX MACRO вложена большая смысловая нагрузка, при работе над книгой мы стремились максимально сохранить свежесть оригинальной терминологии. Например, для обозначения форматов представления целых чисел использовались такие термины, как байт (byte), слово (word), длинное слово (longword), квадраслово (quadword), октаслово (octaword).

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

А. С. Богданов


ПРЕДИСЛОВИЕ

Эта книга задумана как учебное пособие для односеместрового курса по программированию на языке ассемблера для ЭВМ семейства VAX. Предполагается, что читатель немного знаком с программированием на языках высокого уровня, таких как Паскаль или Фортран. Тем не менее в книге достаточно подробно излагаются основы организации ЭВМ. Наша цель - тесно связать вместе теорию и практику. Уделяя много внимания непосредственной работе на ЭВМ, одновременно мы попытаемся дать понять, что такое архитектура VAX. Эта книга будет полезной также для читателей, самостоятельно изучающих устройство и языки программирования ЭВМ семейства VAX.

Тема этой книги выбрана не только вследствие популярности семейства ЭВМ VAX, но и из-за того, что ЭВМ представляется нам идеальной для изучения. Логичность структуры делает ЭВМ семейства VAX лёгкими для программирования на языке ассемблера, а богатство архитектуры VAX позволяет использовать этот язык для решения сложных задач. Последняя особенность также делает ЭВМ семейства VAX идеальной основой для изучения архитектуры других ЭВМ. На примере одного семейства ЭВМ мы рассмотрим такие сложные вопросы, как операции над числами с плавающей точкой и упакованными десятичными числами, системный уровень ввода-вывода, согласование связи с языками высокого уровня, функции операционной системы. Изложение этих вопросов расширяет возможности применения книги в различных областях вычислительной техники.

Мы хотели сделать книгу доступной и содержательной как для изучающих программирование, так и для обучающих программированию. В первых главах книги показаны приёмы, которые дают читателю возможность выполнять на ЭВМ простые программы. Приводятся программы для выполнения операций ввода-вывода, написанные на языке ассемблера, а также на языках высокого уровня. В последних главах рассматривается выполнение операций ввода-вывода с использованием сервисных средств операционной системы VAX/VMS. Кроме обсуждения вопросов, связанных с вводом-выводом, в приложениях даются способы выполнения и отладки программ, объясняется использование команд операционной системы VAX/VMS, а также приводится пример создания программы с помощью редактора текста EDT.

Материал книги изложен следующим образом:

Главы 1, 2 содержат начальные сведения, необходимые для читателей, имеющих ограниченный опыт работы с ЭВМ.

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

Главы 6 - 8 содержат вспомогательный материал, который в основном посвящён обработке данных. Сюда включены сложные операции с числами, работа с символьной информацией и массивами.

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

В гл. 14, 15 излагаются новые темы, которые можно рассматривать как введение в архитектуру вычислительных систем, операционную систему и системное программирование.

Главы 1 - 7 рекомендуется изучать последовательно. Следующие главы надо читать в соответствии со схемой.

 

Рис. П.1

Мы выражаем искреннюю признательность всем, кто оказал помощь при подготовке этой книги. С. Лифшиц обеспечил системную поддержку при подготовке рукописи. Д. Йегер из Филадельфийского государственного колледжа естественных наук и текстильной промышленности проверил ранние варианты рукописи.

Своими замечаниями очень помогли, просмотрев часть или всю рукопись, Г. Барта (г. Женева), Д. А. Каньяс (Техасский университет, г. Остин), Дж. У. Горслайн и Д. Роуч (Политехнический институт и Университет шт. Вирджиния), П. С. Лафоллет, мл. (Темплский университет), М. Г. Мерфи (Хьюстонский университет, Даунтаун колледж), Д. Д. Райли (Висконсинский университет в Ла-Кроссе), П. У. Росс (Миллерсвилский государственный колледж), Р. Спиллман (Пасификский лютеранский университет).

Мы благодарны П. Деспирито за самоотверженность и терпение при перепечатке рукописи.

Мы благодарим Д. Гоулдштейна за работу над упражнениями, а также фирму Integrated Circuit Systems и администрацию Темплского университета за доступ к машинным ресурсам и документации.

Мы очень признательны нашему редактору К. Эллисон и техническим редакторам Б. О'Брайант и X. Мандич-Протас из издательства PWS.

Наконец, выражаем особую благодарность Л. Дж. Кенаху из фирмы Digital Equipment Corporation, который просмотрел нашу рукопись и дал ценные советы и детальные комментарии по архитектуре VAX и операционной системе VAX/VMS.

Посвящаем эту книгу Кристиан, Джути, Марсии и Саре.

Чарльз Кэпс, Роберт Стаффорд

 

< НАЗАД ОГЛАВЛЕНИЕ ВПЕРЁД >