Cтраница 3
В программе может быть записано несколько команд DUMP CHANGES. При исполнении этой команды распечатка содержимого области памяти производится при условии, что в этой области произошли какие-либо изменения по сравнению с предыдущей распечаткой. [31]
Исключающее ИЛИ непосредственное - XI. В этой команде для изменения содержимого однобайтовой области памяти используется однобайтовая маска - непосредственный символ. [32]
Программа на процедурном языке программирования состоит из последовательности операторов ( инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании. [33]
Восемь старших битов ( левый байт) регистра Ri заполняются нулями. Заметим, что в регистре Ri загружается именно исполнительный адрес Е2, а не содержимое области памяти с этим адресом. Обращение к памяти при выполнении команды LA отсутствует. Вычисление значения Ег, загружаемого в регистр, выполняется по всем правилам вычисления адреса исходя из содержимого регистра базы, регистра индекса и смещения. [34]
Переменная LISTA должна содержать адрес сообщения. Причем, ЕСЛИ содержимое кулевого бита LISTA равно 1, ТО это означает, что после выдачи сообщения необходимо дополнительно выдать на АЦПУ содержимое области памяти длиной 80 байтов. Адрес этой области указывается в переменной LISTK. Значением переменной LISTB является адрес, по которому программа REPORT передает управление после окончания работы. ЕСЛИ в сообщении укачан символ, ТО этот параметр является символьной строкой, ЕСЛИ же указан символ, ТО этот параметр является числом с фиксированной точкой. ТО это число длиной в слово, в противном случае - - полуслово. [35]
СПП 11 организует запись контрольных точек. Если на сообщение об ошибке BAA035D дается ответ 4, происходит обращение к СПП 11, где с помощью макрокоманды СНКРТ можно выдать запись контрольной точки, а затем распечатать содержимое области памяти с помощью макрокоманды PDUMP. После выхода из СПП11 все массивы закрываются. [36]
Кроме четырех команд СЛОЖЕНИЕ, которые мы рассмотрели, существуют еще четыре разновидности этих команд. Они очень похожи на команды первых четырех типов и отличаются тем, что при их выполнении в сложении участвует содержимое разряда переноса регистра состояния. Таким образом, содержимое области памяти прибавляется к содержимому аккумулятора, а затем к полученной сумме прибавляется значение разряда переноса из регистра состояния. [37]
Во время цикла выборки этой команды содержимое счетчика команд загружается в регистр адреса памяти. Переданный по адресной шине адрес 0005 декодируется дешифратором. После поступления импульса Чтение памяти содержимое области памяти 0005 ( команда ЗАПИСЬ В ПАМЯТЬ) выводится на шину данных и пересылается в регистр команд. [38]
На межкомандном уровне причиной потери информации являются специфические группы команд, призванные выполнять отдельные операции. Примером может служить операция, занимающаяся ведением счетчика или подсчетом количества наступлений некоторого события в некоторой области памяти. Когда это событие наступает, нам надо прибавить единицу к содержимому области памяти, отведенной под счетчик. [39]
Их результаты согласуются между собой. Выяснилось, что студенты выбирают в библиотеке общего пользования программу, которая кажется им наиболее пригодной, и обращаются с ней небрежно. Содержимое области памяти, которую вызывали учащиеся, всегда было повреждено. Действительно, часто документация на программы отсутствовала вообще, а если она и имелась, то находилась в весьма плачевном состоянии. Некоторые программы просто не работали. [40]
В фазе выполнения команды осуществляется положительное приращение содержимого счетчика команд, после чего он указывает на область OOOF. В регистр адреса памяти загружаются второй и третий байты команды. Содержимое аккумулятора пересылается в буферный регистр. Наконец, содержимое области памяти 0016, бит переноса и содержимое буферного регистра складываются, и полученная сумма загружается в аккумулятор. [41]
На рис. 7.12 показан цикл выборки данной команды. Содержимое счетчика команд загружается в регистр адреса памяти. Адрес 0006 выдается из этого регистра на адресную шину. В дешифратор адреса памяти поступают адрес и сигнал Чтение памяти. Содержимое области памяти 0006 помещается на шину данных микро - ЭВМ. Команда ПРИРАЩЕНИЕ ПОЛОЖИТЕЛЬНОЕ РЕГИСТРОВОЙ ПАРЫ пересылается в регистр команд. [42]
Существуют 7 специальных имен: JOBLIB, STEPLIB, SYSABEND, SYSUDUMP, SYSCHK, JOBCAT, STEPCAT. Имя JOBLIB предназначено для оператора DD, определяющего библиотеку задания; этот оператор должен непосредственно следовать за оператором JOB. Имя STEP-LIB предназначено для оператора DD, определяющего библиотеку пункта задания; этот оператор может быть расположен в любом месте среди операторов DD пункта задания. Имена SYSABEND и SYSUDUMP предназначены для операторов DD, определяющих набор данных для выдачи дампа в случае аварийного завершения задачи. Если используется имя SYSABEND, то дамп будет включать содержимое области памяти раздела, ядра и управляющую информацию. Если используется имя SYSUDUMP, то дамп будет включать те же элементы, кроме ядра. Эти операторы могут быть расположены в любом месте среди операторов DD пункта задания. Имя SYSCHK предназначено для оператора DD, определяющего набор данных контрольной точки, который формируется при начальном выполнении задания и затем будет использован при рестарте. Этот оператор должен быть расположен непосредственно перед первым оператором EXEC текущего задания. Имя JOBCAT предназначено для описания личного каталога пользователя при работе с виртуальным методом доступа, в котором во время выполнения задания производится поиск наборов данных. [43]
При гтраничной организации памяти проблемы защиты существенно упрощаются, так как при этом можно осуществлять контроль соответствия адресов в рамках соответствующих страниц. Каждая математическая страница снабжается специальным разрядом защиты, указывающим на запрет или разрешение обращения к этой странице. Совокупность таких разрядов образует регистр защиты страниц. Состояние этого регистра определяет доступные математические страницы. Нарушение условий защиты вызывает прерывание программы, благодаря чему содержимое защищенной области памяти не нарушается. [44]
На рис. 7.7 представлен цикл выборки этой команды. Содержимое счетчика команд загружается в регистр адреса памяти. Из этого регистра адрес ( указывающий на область 0003) подается на адресную шину памяти. Дешифратор адреса памяти декодирует адрес. Устройство управления вырабатывает сигнал Чтение памяти, являющийся для памяти указанием вывести содержимое области памяти 0003 на шину данных. Затем в регистр команд микропроцессора пересылается команда ВВОД. Тем самым завершается цикл выборки команды. [45]