
- •90 Stm Запись в память групповая.
- •98 Lm Загрузка групповая
- •92 Mvi Пересылка непосредственная
- •91 Тм Проверить по маске
- •45 Bal Переход с возвратом (rx)
- •05 Balr Переход с возвратом (rr)
- •46 Вст Переход по счетчику (rx)
- •06 Bctr Переход по счетчику (rr)
- •86 Вхн___Переход индекс больше (rs)
- •87 Bxle Переход индекс меньше или равен (rs)
- •41 La Загрузка адреса (rx)
- •93 Ts Проверить и установить (si)
- •08 Ssk Установить ключ памяти (rr).
- •09 Isk Прочитать ключ памяти (rr).
41 La Загрузка адреса (rx)
Исполнительный адрес E2 = D2 + (Х2) + (В2) помещается в общий регистр, определяемый R1. Восемь старших битов в регистре R1 заполняются нулями. Заметим, что эта команда не вызывает обращение к памяти по адресу E2, а только загружает сам адрес. Эта команда наиболее полезна для загрузки небольших констант в регистры.
Например, команда
LA 41 70 0034
загружает в регистр 7 число 0000 0034.
43 IC Прочитать символ (RX)
Байт по адресу E2 помещается на место самого правого байта регистра R1. Остальные байты в регистре R1 не изменяются.
42 STC Запись в память символа (RX)
Самый правый байт из регистра R1 записывается по адресу второго операнда.
04 SPM Установить маску программы (RR)
Биты 2–7 регистра R1 замещают признак результата и маску программы в PSW. Адрес R2 игнорируется. Остальная часть PSW не изменяется. Биты 2–3 замещают признак результата; биты 4–7 – маску программы. Этой команде часто предшествуют команды BAL или BALR, которые запоминают предыдущее содержимое PSW в регистре. Затем для изменения нужных битов используются команды И или ИЛИ.
0А SVC Обращение к супервизору (RR)
Эта команда имеет особый формат:
-
ОА
I1
Регистры не участвуют в этой операции. Эта команда и только эта команда вызывает прерывание, которое называется обращением к супервизору. Байт I1, помещается в биты 24–31 старого PSW, а биты 16–23 заполняются нулями. Старое PSW затем помещается в ячейку 32, а из ячейки 96 выбирается новое PSW. Команда SVC является естественным способом обращения проблемной программы к супервизору. Восемь битов в команде, помещаемые в старое PSW, представляют собой закодированное сообщение супервизору о виде обслуживания, которое требуется программе.
93 Ts Проверить и установить (si)
Второй операнд (I2) не используется в этой команде. Байт в памяти по адресу E1 используется для установки признака результата, а затем замещается байтом, все биты которого равны 1. Признак результата устанавливается равным 0 или1 в зависимости от значения левого бита в проверяемом байте (0 или 1 соответственно). Особенность этой команды заключается в том, что выборка байта для анализа и занесение всех единиц осуществляются за один цикл обращения к памяти. Эта особенность является важной, если одна и та же память совместно используется двумя или более процессорами. Команда TS представляет удобный способ одному процессору определить, что делает другой. Он может, например, определить, заполнил ли другой процессор некоторую ячейку памяти, не опасаясь, что попытка заполнения придется как раз на момент проверки.
1E ALR Сложение кодов (RR)
5Е AL Сложение кодов (RX)
1F SLR Вычитание кодов (RR)
5F SL Вычитание кодов (RX)
Эти четыре команды выполняются в точности так же, как и соответствующие им команды AR, A, SR, S; единственное отличие заключается в установке признака результата. Эти команды введены для облегчения программирования операций с удвоенной точностью над числами с фиксированной точкой. Признак результата устанавливается следующим образом:
0 Сумма равна нулю и перенос из знакового бита отсутствует.
1 Сумма не равна нулю и перенос из знакового бита отсутствует.
2 Сумма равна нулю и произошел перенос из знакового бита.
3 Сумма не равна нулю и произошел перенос из знакового бита.
Для иллюстрации предположим, что в результате умножения получилось число двойной длины в регистрах 2 и 3. Требуется сложить это произведение с подобным произведением, находящимся в регистрах 4 и 5. Допуская, что можно игнорировать возможность переполнения в регистре 4, прибавляем с помощью команды Сложение (AR) содержимое регистра 2 к содержимому регистра 4 и прибавляем с помощью команды Сложение кодов (ALR) содержимое регистра 3 к содержимому регистра 5. Если после выполнения последнего сложения признак результата равен 2 или 3, прибавляем 1 к содержимому регистра 4. Вычисления с удвоенной точностью часто нужны при обработке статистических данных, где приходится накапливать сумму произведений или сумму квадратов многих чисел.
Привилегированные команды
Команды, рассматриваемые в этом разделе, объединяет тот факт, что все они являются привилегированными, т. е. эти команды CPU может выполнить только в режиме супервизор. Попытка выполнить эти команды в режиме задача вызовет программное прерывание.
82 LPSW Загрузка PSW (SI).
Второй операнд (I2) не используется. Двойное слово, определяемое адресом первого операнда, замещает PSW. Следующей будет выполняться команда, задаваемая новым PSW.
80 SSM Установить маску системы (SI)
Второй операнд (I2) не используется. Байт, определяемый адресом первого операнда, замещает биты маски системы (биты 0–7) в PSW. С помощью этой команды программа-супервизор может замаскировать или размаскировать прерывания от ввода–вывода.
83 Диагностика (SI).
Эта команда не имеет мнемонического кода. Она вызывает выполнение некоторых диагностических процедур на CPU, результаты которых .записываются в память, начиная с ячейки 128. На модели 30 заполняются 12 байтов, на моделях с большими номерами – до 256 байтов. На каждой модели эта команда выполняется по-своему. Она используется при ремонте машины.
84 WRD Прямая запись (SI).
85 RDD Прямое чтение (SI).
Эти две команды являются составной частью совокупности средств, называемых прямым управлением. Они дают возможность обеспечить обмен сигналами между IBM-360 и другими ЭВМ. Это осуществляется так: поле 1з команды подается в качестве синхроимпульсов длительностью от .5 до 1.0 мксек на 8 выходных сигнальных линий. Помимо этого команда WRD выбирает байт из памяти по адресу первого операнда и подает его в форме статических сигналов на другие 8 линий. Под статическими сигналами имеются в виду такие, которые сохраняются вплоть до следующей команды WRD. Что касается команды RDD, то она формирует байт из сигналов, получаемых с аналогичных 8 линий, и отправляет его в память по адресу первого операнда. Обычно выходные сигнальные линии с подаваемыми на них сигналами используются для того, чтобы вызвать внешнее прерывание в других машинах (IBM-360), а также для управления другими устройствами.
Средства защиты
Машина IBM-360 конструировалась так, чтобы несколько несвязанных между собой программ могли одновременно находиться в основной памяти. Чтобы предотвратить воздействия программ друг на друга, в машине предусмотрены средства защиты, памяти, необязательные для моделей IBM-360 с малыми номерами и стандартные для моделей с большими мерами.
Каждому блоку из 2048 байтов приписывается восьмибитовой ключ памяти. Биты 0-3 предназначены для защиты от записи, бит 4 для защиты от выборки, а биты – 5-7 всегда равны нулю. Имеются две команды для работы с ключами: