Cтраница 3
В этой главе рассматриваются макросредства ассемблера. Будет рассмотрено использование макрокоманд при программировании и реализация макро в трансляторе с языка ассемблера. Будут детально обсуждены некоторые функции, характерные для большинства макропроцессоров. [31]
Выходная запись формируется программой пользователя в рабочей области, а по макрокоманде PUT в режиме пересылки пересылается в выходной буфер. Таким образом, использование макрокоманд GET и PUT в режиме пересылки приводит к двойной пересылке обрабатываемой записи: из входного буфера - в рабочую область и из рабочей области - в выходной буфер. [32]
Можно писать макровызовы в теле макроопределения, причем вызываемая макрокоманда не обязательно должна быть к этому моменту определена. Вложенные в макроопределение вызовы макрокоманд необходимо определить к моменту использования внешней макрокоманды. [33]
Коды аварийного завершения задания или пункта задания могут быть проверены через операционную систему на соответствие некоторым условиям с помощью параметра COND в операторах JOB или EXEC. Кроме того, их можно интерпретировать в обрабатывающей программе на языке ассемблера путем использования макрокоманды STAE или операнда ETXR макро - команды ATTACH. Как системный, так и пользовательский коды аварийного завершения помещаются в блок управления задачей пункта задания ( ТСВ) в поле ТСВСМР. [34]
Более полное описание ассемблеров и средств программирования на языке ассемблера дано в гл. Здесь изложены вопросы перемещения и установления связей программ, организации позиционно независимых программ, использования макрокоманд и структурных языков ассемблера. [35]
Карта NWNUM содержит пары граничных значений номеров сведений, которые указывают область сведений, которая должна обрабатываться. Эта карта используется в программе D l DBA и в программах подготовки каталогов, сгенерированных с использованием макрокоманды ОЩОХКАТ. [36]
Программа, рассматриваемая в примере 5.23, во-первых, типична для десятичной арифметики. Во-вторых, в этой программе исходные данные, подлежащие обработке, вводятся с перфокарт, а результаты вычислений выдаются на АЦПУ с использованием макрокоманд операционной системы. Программа записана в виде готового задания для ЭВМ, работающей с ОС ЕС. [37]
Автоматически создаваемые локальные символы особенно полезны, когда в макрорасширении необходима метка. Создание таких меток в макрорасширении позволяет, с одной стороны, уменьшить число аргументов в вызове макрокоманды ( может быть опущен фактический аргумент, определяющий метку в макрорасширении); с другой стороны, позволяет избежать многократного определения меток, возможного при каждом использовании макрокоманды, если соответствующий фактический аргумент задан некорректно. [38]
Помимо рассмотренных макрокоманд диспетчера, предусмотрены также макрокоманды ввода с перфокарт ( с возможным переводом из десятичной системы в двоичную), вывода на перфоленту и обмена с магнитными барабанами и магнитными лентами. Вид и выполнение макрокоманд определяются структурой диспетчера. Использование макрокоманд может предоставить пользователям некоторые дополнительные возможности. [39]
Существует промежуточный вариант между макрокомандами LINK и LOAD, не требующий много времени на поиск нужной программы и не требующий большого объема основной памяти для хранения загрузочного модуля. Этот вариант заключается в применении макрокоманды BLDL, согласно которой Супервизор находит и загружает в память элемент библиотеки, характеризующий местонахождение требуемой программы. Использование макрокоманды BLDL позволяет последующей макрокоманде LINK находить нужный модуль за одно обращение к внешнему устройству, в то же время элемент Оглавления библиотеки, находящийся в памяти, занимает сравнительно мало места. [40]
Здесь следует размещать первый символ первого операнда. Это обеспечивает по крайней мере один пробел между кодом операции и операндами. При использовании макрокоманд код операции может быть длиннее, чем обычный код операции команд языка Ассемблера; поэтому для обеспечения пробела перед первым символом первого операнда операнд в этом случае должен начинаться в колонке с большим номером. [41]
Особенностью прикладного программирования в среде системы КАМА является требование использования для функций управления данными и супервизорных функций только макрокоманд этой системы, позволяющее системе КАМА эффективно диспетчировать выполнение всех программ одновременно с обработкой всех запросов от терминалов. Это тре - бование не является существенным ограничением, так как макрокоманды системы КАМА не только повторяют, но и расширяют возможности ОС, являясь средствами программирования функций реального времени, необходимых конкретным прикладным программам. Кроме того, использование макрокоманд в системе КАМА проще, чем в ОС ЕС, что существенно облегчает работу прикладного программиста. [42]
Излагаются основные принципы построения и использования операционных систем для ЭВМ третьего поколения. Приводятся алгоритмы управления задачами, данными, заданиями при мультипрограммировании с фиксированным числом задач. Описываются схема действия и использование основных макрокоманд Супервизора для ОС ЕС и ОС ИБМ / 360, Редактора связей и Загрузчика. [43]
Гибкость, скорость выполнения и краткость команд, присущие машинному языку, остаются неизменными. Псевдокоманды резервируют место в ЗУ, определяют данные и управляют процессом трансляции исходной программы в машинную. Использование машинно-ориентированных языков упрощается за счет использования макрокоманд и символических адресов. Символические адреса представляют собой наименования или сокращения, которые используются вместо номеров ячеек ОЗУ. Макрокоманды представляют собой последовательности часто встречающихся и особо определенных наборов команд. [44]
В поток программ вводятся макрокоманды, которые в свою очередь индуцируют вызов других макрокоманд. Продолжается разработка цепочек заранее определенных операций или этапов программирования с применением модульного принципа. Достигаемые при этом преимущества: те же, что и при одноразмерном использовании макрокоманд, в то же время они распространяются и на составление макрокоманд. [45]