Вигдорчик Г. В. и др. Основы программирования на Ассемблере для СМ ЭВМ /Г. В. Вигдорчик, А. Ю. Воробьев, В. Д. Праченко. — М.: Финансы и статистика, 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.1. Аргументы вложенных макрокоманд и макро-определений............• *«Р
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

Hosted by uCoz