Математика | ||||
Вигдорчик Г. В. и др. Основы программирования на Ассемблере для СМ ЭВМ /Г. В. Вигдорчик, А. Ю. Воробьев, В. Д. Праченко. — М.: Финансы и статистика, 1983.— 256 с., ил. В пер.: 75 коп. В книге рассматривается архитектура управляющих вычислительных комплексов СМ-3 и СМ-4 и система команд этих машин, описывается язык Макроассемблер, приемы программирования и работа с внешними устройствами. Описание сопровождается примерами программ. Изложение материала ведется независимо от операционных систем СМ ЭВМ. Для программистов, начинающих свою работу на СМ-3, СМ-4. Может служить справочным пособием для опытных программистов и студентов вузов. | ||||
ВВЕДЕНИЕ Разработка и организация крупносерийного производства дешевых и простых в эксплуатации мини- и микро-ЭВМ Международной системы малых электронных вычислительных машин — СМ ЭВМ обеспечили массовое применение вычислительной техники в управлении технологическими процессами и объектами, в сфере организационного управления и управления производством, в медицине, образовании, научных исследованиях и т. д. Для удовлетворения требований разнообразных сфер применения в составе программного обеспечения СМ ЭВМ имеется большое число проблемно-ориентированных операционных систем, пакетов прикладных программ и систем программирования с языков высокого уровня, таких, как Фортран, Кобол, Бейсик, Диамс, Паскаль и другие, позволяющих эффективно использовать управляющие вычислительные комплексы на базе СМ ЭВМ в различных областях народного хозяйства и науки. Несмотря на наличие различных языков высокого уровня, на практике широко используется язык уровня ассемблера. Этот язык наиболее полно учитывает архитектурные возможности комплексов СМ ЭВМ и является единственным языком, на котором возможно эффективное программирование внешних устройств и устройств межсистемных связей. Программы на других языках для работы с внешними устройствами и для обращения к средствам операционных систем используют специальные программы на языке уровня ассемблера. Предлагаемая книга посвящена основам программирования на моделях СМ-3 и СМ-4 и других программно-совместимых с ними мини- и микро-ЭВМ. Как указывалось выше, в составе программного обеспечения СМ ЭВМ функционирует несколько операционных систем, ориентированных на различные области применения. Тем не менее изложение материала в книге не привязано к какой-либо конкретной операционной системе моделей СМ-3 и СМ-4, приводимые сведения по программированию сохраняют свою силу при работе с любой операционной системой указанных моделей СМ ЭВМ. В [1] приведен обзор всех компонентов программного обеспечения моделей СМ-3, СМ-4, включая и характеристики операционных систем. По этой причине в данной книге описание операционных систем моделей СМ-3 и СМ-4 отсутствует. Изложение материала построено следующим образом. В главе 1 приводятся необходимые программистам сведения об архитектуре моделей СМ-3 и СМ-4 и излагаются основные системные понятия, такие, как распределение памяти, организация прерываний, способы подключения внешних устройств к общей шине и др. Во второй главе описаны способы представления данных и режимы адресации, приведено описание системы машинных инструкций и примеры их использования. Особое внимание уделено описанию языка Макроассемблер (главы 3, 4, 5 и 6). В седьмой главе изложены специальные приемы программирования на Макроассемблере, учитывающие архитектурные особенности моделей СМ-3 и СМ-4. Восьмая глава посвящена вопросам программирования операций ввода-вывода. Справочные материалы, необходимые при программировании, приведены в приложениях к книге. Авторы надеются, что освещение в книге таких вопросов, как общая архитектура и система машинных команд (инструкций), режимы адресации и способы представления данных, программирование внешних устройств, основные приемы программирования, позволит читателю глубже ознакомиться с особенностями и возможностями СМ-3 и СМ-4, получить полезную информацию, необходимую для составления эффективных программ, что является немаловажным фактором в условиях ограниченности ресурсов, свойственной всем мини-ЭВМ, в том числе и моделям СМ-3, СМ-4. Книга рассчитана на читателей, знакомых с архитектурой современных ЭВМ и основами программирования. При этом главы 1 и 2 рекомендуются всем читателям, которые собираются посвятить себя работе программиста на СМ-3 и СМ-4. Главы 3—7 рассчитаны на системных программистов, .глава 8 — на системных программистов, специализирующихся на программировании внешних устройств. Учитывая, что дальнейшее развитие СМ ЭВМ проводится при сохранении архитектурной линии моделей СМ-3 и СМ-4 и при обеспечении полной программной совместимости «снизу-вверх» последующих моделей СМ ЭВМ с моделями СМ-3 и СМ-4, авторы надеются, что данная книга окажется полезной и при появлении этих новых моделей СМ ЭВМ. В. П. Семик ОГЛАВЛЕНИЕ Введение ...... . ,,.,,.... 3 ГЛАВА 1. Архитектура УВК СМ-3 и CJW-4 ....... 6 1.1. Процессор . ,....... 1.2. Структура памяти............ 1.3. Стек . , . ............. 1.4. Общая шина............... 16 1.5. Система прерываний ........... 20 ГЛАВА 2. Представление данных и машинные инструкции . 24 2.1. Форматы данных ............ 24 2.2. Режимы адресации операндов . .' . . . . 28 2.2.1. Режимы прямой адресации........ 28 2.2.2. Режимы косвенной адресации....... 30 2.2.3. Режимы адресации с использованием PC . . 31 2.2.4. Таблица режимов адресации и их кодов . . 2.2.5. Адресация- в инструкциях перехода . . . . 2.2.6. Адресация инструкций прерываний ..... 2.3. Одноадресные инструкции . . ,..... 36 2.3.1. Одноадресные инструкции для работы с операндами, состоящими из нескольких слов (байт) 40 2.3.2. Примеры работы одноадресных инструкций с прямой адресацией........... 42 2.3.3. Примеры работы одноадресных инструкций с косвенной адресацией ......... 43 2.3.4. Примеры работы одноадресных инструкций с использованием адресации по PC..... 44 2.4. Двухадресные инструкции........ 45 2.4.1. Примеры работы двухадресных инструкций с прямой адресацией . . . . ,...... 48 2.4.2. Примеры работы двухадресных инструкций с косвенной адресацией . . ....... 49 2.5. Инструкции передачи управления ...... 49 2.5.1. Инструкции перехода .......... 50 2.5.2. Инструкции для работы с подпрограммами . 52 J2.5.3. Инструкции прерываний .^ . ....... 55 2.6. Служебные инструкции < щ< ....... 57 2.6.1. Инструкции установки "кодов условий ... 57 2.6.2. Зарезервированные инструкции....... 58 2.7. Расширенный набор инструкций для СМ-4 . . 58 2.7.1. Дополнительные арифметические и логические. инструкции . |.....,...... 59 '* 253 2.7.2. Инструкции для работы с подпрограммами и циклами , ........ ...... (Я 2.7.3. Операции с плавающей запятой ...... 2.8. Диспетчер памяти............ вв 2.8.1. Идентификация страниц ........ <>/ 2.8.2. Формирование физического адреса .... 2.8.3. Прерывания при работе с ДП .... 2.8.4. Дополнительные инструкции при работе с ДП ГЛАВА 3. Введение в Макроассемблер........ 3.1. Формат оператора............ 3.1.1. Поле метки .............. 3.1.2. Поле операции............ 3.1.3. Поле операнда............ 3.1.4. Поле комментария........... 3.1.5. Управление форматом . ........ 3.2. Символы языка.............. 3.2.1. Набор знаков............. 3.2.2. Символы Макроассемблера....... 3.2.3. Оператор прямого присваивания . . , .•*». , 3.2.4. Символы регистров.....,..... 3.2.5. Локальные символы........... 89 3.2.6. Счетчик адресов программы....... 91 3.2.7. Числа..............: : 92 3.3. Термы ..... i.......... 94 3.4. Выражения.............. 95 ГЛАВА 4. Основные директивы Макроассемблера ..... 97 4.1. Управление памятью ........... 97 4.1.1. Директива .BYTE........ 98 4.1.2: Директива .WORD........... 99 4.1.3. Представление одного или двух знаков в символьном коде............. 100 4.1.4. Директива .ASCII........ 101 4.1.5. Директива .ASCIZ ......... 103 4.1.6. Директива .RAD50.......... 103 4.1.7. Оператор временного указания кода RADIX-50 105 4.1.8. Управление внутренним представлением чисел 105 4.1.9. Управление форматом внутреннего представления чисел с плавающей запятой...... 108 4.1.10. Временное внутреннее представление чисел . , 109 4.1.11. Директивы управления счетчиком адресов , . 4.1.12. Директива границ программы ....... - 4.2. Условная трансляция....., . . , . 113 4.2.1. Директива блока условной трансляции ... 113 4.2.2. Поддирективы условной трансляции .... 115 4.2.3. Директива непосредственной условной трансляции................ 4.3. Идентификация модулей ,........• . 4.3.1. Директива .TITLE . . . *....... 118 4.3.2. Директива .SBTTL........... 119 4.3.3. Директива .IDENT........... 120 4.3.4. Директива .END.........., . 120 X 4.4. Секционирование программ . . ....... 121 4.4.1. Директива .PSECT..........• ]21 442. Директивы .ASECT и .CSECT...... 4.4.3. Директива .GLOBL........... IJ» ГЛАВА 5. Директивы макрокоманд .......... 5 1 Определение и вызов макрокоманд ..... 5.1.1. Директива .MEXIT........... 133 5.1.2. Форматирование макроопределений ..... 134 5.2. Вызовы макрокоманд.......... 134 5.3. Аргументы макрокоманд ......... i 5.3.2. Использование специальных знаков в аргументах .............. * » J37 5.3.3. Символьное представление числового аргумента 1о/ 5.3.4. Число аргументов в вызове макрокоманды . . 5.3.5. Автоматически создаваемые локальные символы 139 5.3.6. Ключевые слова.........: : 140 5.3.7. Конкатенация аргументов макроопределения . 5.4. Встроенные макрокоманды........ 143 5.4.1. Директива .IRP ...........» 144 5.4.2. Директива .IRPC........... 144 5.4.3. Блоки повторений . . .,,..,... 145 5.5. Служебные директивы . . ....... 146 5.5.1. Директива .NARG........... 146 5.5.2. Директива .NCHR ........... 146 5.5.3. Директива .NTYPE.......... 147 5.5.4. Директива .MCALL.......... . 148 . ГЛАЙА 6. Директивы управления трансляцией...... 150 6.1. Управление листингом.......... 150 6.1.1. Директивы .LIST и .NLIST....... 150 6.1.2. Заголовок страницы........., . 154 6.1.3. Директива .PAGE........... 154 6.2. Параметры трансляции ......... 6.3. Регистрация ошибок .,..,....., 156 ГЛАВА 7. Техника программирования . . . ,..... 158 7.1. Соглашения и рекомендации .».'....... 158 7.1.1. Оформление строки .....,.,., 158 7.1.2. Комментарии ,............ 159 7.1.3. Формирование символов......... 160 7.1.4. Оформление модуля . ......,,, 162 7.1.5. Взаимодействие модулей ......... 164 7.1.6. Замечания ...,..-........ 165 7.2. Приемы программирования........ 166 7.2.1. Пример цикла ............ 167 7.2.2. Условная трансляция.......... 169 7.2.3. Использование макрокоманд . . ..... 170 7.2.4. Оптимизация макрокоманд....... 174 7.2.5. Работа со строками..........! 177 7.2.6. Перекодировка........... 180 7.2.7. Арифметические операции . ......'. 183 7.3. Подпрограммы . . . . .'..;;..•., 185 255 Цена: 50руб. |
||||