IBM370
.pdfНазвание |
Мнемони- |
|
Характеристики |
|
|
Ма |
|
|
ческое обо- |
|
|
|
|
|
шин- |
|
значение |
|
|
|
|
|
ный |
|
|
|
|
|
|
|
код |
|
|
|
|
|
|
|
|
операнда в длинный) |
|
|
|
|
|
|
|
ЗАГРУЗКА С ОКРУГЛЕНИЕМ |
LRER |
|
|
|
|
|
35 |
(преобразование длинного опе- |
|
R |
P |
P |
|
|
|
ранда в короткий) |
|
|
|
|
|
|
|
УМНОЖЕНИЕ (расширенные |
MXR |
|
|
|
|
|
26 |
операнды) |
|
R |
P |
P |
|
|
|
УМНОЖЕНИЕ (длинные опе- |
MDR |
|
|
|
|
|
2C |
ранды) |
|
R |
P |
P |
|
|
|
УМНОЖЕНИЕ (длинные опе- |
MD |
|
|
|
|
|
6C |
ранды) |
|
X |
P |
P |
|
|
|
УМНОЖЕНИЕ (длинные опе- |
MXDR |
|
|
|
|
|
27 |
ранды, расширенный результат) |
|
R |
P |
P |
|
|
|
УМНОЖЕНИЕ (длинные опе- |
MXD |
|
|
|
|
|
67 |
ранды, расширенный результат) |
|
X |
P |
P |
|
|
|
УМНОЖЕНИЕ (короткие опе- |
MER |
|
|
|
|
|
3C |
ранды, длинный результат) |
|
R |
P |
P |
|
|
|
УМНОЖЕНИЕ (короткие опе- |
ME |
|
|
|
|
|
7C |
ранды, длинный результат) |
|
X |
P |
P |
|
|
|
ЗАПИСЬ В ПАМЯТЬ (длинные |
STD |
|
|
|
|
|
60 |
операнды) |
|
X |
P |
P |
|
T |
|
ЗАПИСЬ В ПАМЯТЬ (короткие |
STE |
|
|
|
|
|
70 |
операнды) |
|
X |
P |
P |
|
T |
|
ВЫЧИТАНИЕ С |
SXR |
|
|
|
|
|
37 |
НОРМАЛИЗАЦИЕЙ (расширен- |
|
R |
P |
P |
S |
|
|
ные операнды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ С |
SDR |
|
|
|
|
|
2B |
НОРМАЛИЗАЦИЕЙ (длинные |
|
R |
P |
P |
S |
|
|
операнды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ С |
SD |
|
|
|
|
|
6B |
НОРМАЛИЗАЦИЕЙ (длинные |
|
X |
P |
P |
S |
|
|
операнды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ С |
SER |
|
|
|
|
|
3B |
НОРМАЛИЗАЦИЕЙ (короткие |
|
R |
P |
P |
S |
|
|
операнды) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281
Название |
Мнемони- |
|
Характеристики |
|
|
Ма |
|
|
ческое обо- |
|
|
|
|
|
шин- |
|
значение |
|
|
|
|
|
ный |
|
|
|
|
|
|
|
код |
|
|
|
|
|
|
|
|
ВЫЧИТАНИЕ С |
SE |
|
|
|
|
|
7B |
НОРМАЛИЗАЦИЕЙ (короткие |
|
X |
P |
P |
S |
|
|
операнды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ БЕЗ |
SWR |
|
|
|
|
|
2F |
НОРМАЛИЗАЦИИ (длинные опе- |
|
R |
P |
P |
S |
|
|
ранды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ БЕЗ |
SW |
|
|
|
|
|
6F |
НОРМАЛИЗАЦИИ (длинные опе- |
|
X |
P |
P |
S |
|
|
ранды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ БЕЗ |
SUR |
|
|
|
|
|
3F |
НОРМАЛИЗАЦИИ (короткие опе- |
|
R |
P |
P |
S |
|
|
ранды) |
|
|
|
|
|
|
|
ВЫЧИТАНИЕ БЕЗ |
SU |
|
|
|
|
|
7F |
НОРМАЛИЗАЦИИ (короткие опе- |
|
X |
P |
P |
S |
|
|
ранды) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обозначения:
A – особые случаи доступа;
C – устанавливается признак результата;
E – особый случай переполнения порядка;
FK – особый случай деления с плавающей точкой;
FP – средство обработки чисел с плавающей точкой;
LS – особый случай потери значимости;
RR – формат RR;
RX – формат RX;
SP – особый случай спецификации;
ST – программное событие изменения содержимого основной памяти;
U – особый случай исчезновения порядка;
XP – средство обработки чисел с плавающей точкой с повышенной точностью.
282
СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ |
|
|
||||||||
AER |
R1,R2 |
|
[RR, ???????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
3A |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
AE |
R1,D2(X2,B2) |
[RX, ???????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
7A |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
ADR |
R1,R2 |
|
[RR, ??????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
2A |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
AD |
R1,D2(X2,B2) |
[RX, ??????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
6A |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
AXR |
R1,R2 |
|
[RR, ??????????? ????????] |
|||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
36 |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
Второй операнд складывается с первым и нормализованная сумма помещается в ячейку первого операнда.
Сложение двух чисел с плавающей точкой заключается в выравнивании характеристик и сложении мантисс. Характеристики обоих операндов сравниваются, и мантисса операнда с меньшей характеристикой сдвигается вправо; при каждом сдвиге на шестнадцатеричную циф-
ру производится увеличение характеристики этого операнда на единицу. Сдвиг продолжается до тех пор, пока характеристики операндов не станут равными.
Если операнд сдвинут вправо во время выравнивания, то самая левая шестнадцатеричная цифра поля, выдвинутого за пределы разрядной сетки, сохраняется в качестве дополнитель-
ной цифры. Считается, что операнд. который не подвергся сдвигу, имеет дополнительную
283
младшую цифру, равную нулю. Если выравнивающий сдвиг не производится, то считается, что оба операнда расширены младшими шестнадцатеричными нулями. Затем производится ал-
гебраическое сложение мантисс для получения промежуточной суммы.
При сложении коротких операндов мантисса промежуточной суммы состоит из 7 шестна-
дцатеричных цифр и, возможно, цифры переноса, при сложении длинных операндов – из 15
шестнадцатеричных цифр и, возможно, цифры переноса, при сложении расширенных операн-
дов – из 29 шестнадцатеричных цифр и, возможно, цифры переноса. Если перенос имеет ме-
сто, сумма сдвигается вправо на одну цифру, и характеристика увеличивается на единицу.
После сложения промежуточная сумма сдвигается влево таким образом, чтобы получить нормализованное число, при условии, что мантисса не равна нулю. В освобождающиеся младшие шестнадцатеричные позиции заносятся нули, а характеристика уменьшается на чис-
ло единиц, равное числу сдвигов. Затем мантисса промежуточной суммы усекается таким об-
разом, чтобы получить мантиссу результата нужной длины.
Знак суммы определяется по правилам алгебры, за исключением случая, когда все цифры мантиссы промежуточной суммы равны нулю. В этой ситуации устанавливается положитель-
ный знак.
Если перенос из старшей позиции мантиссы промежуточной суммы служит причиной того,
что значение характеристики нормализованной суммы превышает число 127, то фиксируется особый случай переполнения порядка. Операция завершается путем формирования характе-
ристики, которая на 128 меньше действительного значения, и происходит программное преры-
вание из-за переполнения порядка. При этом результат будет нормализованным, а знак и ман-
тисса сохраняют правильные значения. В случае команды СЛОЖЕНИЕ для расширенных опе-
рандов (AXR) сохраняется также правильное значение характеристики младшей части.
Если характеристика нормализованной суммы меньше нуля, а мантисса не равна нулю,
имеет место особый случай исчезновения порядка. Если бит маски исчезновения порядка ра-
вен единице, операция завершается путем формирования характеристики, которая на 128
больше действительного значения. Результат нормализуется, а знак и мантисса сохраняют правильные значения. Затем происходит программное прерывание из-за исчезновения поряд-
ка. Если исчезновение порядка имеет место, а бит маски исчезновения порядка равен нулю, то программное прерывание не происходит; вместо этого операция завершается путем формиро-
вания результата, равного истинному нулю. В случае команды СЛОЖЕНИЕ для расширенных операндов исчезновение порядка не фиксируется, если характеристика младшей части меньше нуля, а характеристика старшей части больше или равна нулю.
Если мантисса промежуточной суммы, включая дополнительную цифру, равна нулю, имеет место особый случай потери значимости. Если бит маски потери значимости равен единице, то характеристика промежуточной суммы не меняется и становится характеристикой результата.
Нормализация не производится , и происходит программное прерывание из-за потери значи-
284
мости. Если бит маски потери значимости равен нулю, программное прерывание не происхо-
дит; вместо этого формируется результат, равный истинному нулю.
Поле R1 в командах AER, AE, ADR и AD и поле R2 в командах AER и ADR должны опреде-
лять регистры 0, 2, 4 или 6. Поля R1 и R2 в команде AXR должны задавать номера регистров 0
или 4. В противном случае фиксируется особый случай спецификации.
Признак результата:
0 – мантисса результата равна нулю;
1 – результат меньше нуля;
2 – результат больше нуля;
3 – не бывает.
Программные прерывания:
операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой или в случае команды AXR отсутствуют средства обработки чисел с плавающей точкой повышенной точности);
доступ (выборка второго операнда в командах AE и AD);
спецификация;
переполнение порядка;
исчезновение порядка;
потеря значимости.
Замечания по программированию
Перестановка операндов при сложении с плавающей точкой не влияет на значение суммы.
СЛОЖЕНИЕ БЕЗ НОРМАЛИЗАЦИИ
AUR |
R1,R2 |
|
[RR, ???????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
3E |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
AU |
R1,D2(X2,B2) |
[RX, ???????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
7E |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
AWR |
R1,R2 |
|
[RR, ??????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
2E |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
285
AW |
R1,D2(X2,B2) |
[RX, ??????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
6E |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
|
31 |
Второй операнд складывается с первым операндом, и ненормализованная сумма помеща-
ется на место первого операнда.
Команда СЛОЖЕНИЕ БЕЗ НОРМАЛИЗАЦИИ выполняется аналогично команде СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ и отличается от последней лишь тем, что после сложения мантисса про-
межуточной суммы усекается без выполнения нормализации до мантиссы результата нужной длины. Старшие нулевые цифры из мантиссы результата не исключаются, исчезновение по-
рядка не может произойти, а дополнительная цифра при распознавании потери значимости не используется. Потеря значимости фиксируется в том случае, когда мантисса промежуточной суммы без учета дополнительной цифры равна нулю.
Поля R1 и R2 должны задавать номера регистров 0, 2, 4 или 6. В противном случае фикси-
руется особый случай спецификации.
Признак результата:
0 – мантисса результата равна нулю;
1 – результат меньше нуля;
2 – результат больше нуля;
3 – не бывает.
Программные прерывания:
операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);
доступ (выборка второго операнда в командах AU и AW);
спецификация;
переполнение порядка;
потеря значимости.
СРАВНЕНИЕ
CER R1,R2 [RR, ???????? ????????]
+-------------------- |
|
|
|
|
+ |
¦ 39 |
|
¦ |
R1 |
¦ |
R2 ¦ |
+-------------------- |
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
286
CE |
R1,D2(X2,B2) |
[RX, ???????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
79 |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
CDR |
R1,R2 |
|
[RR, ??????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
29 |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
CD |
R1,D2(X2,B2) |
[RX, ??????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
69 |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
Первый операнд сравнивается со вторым операндом, и в зависимости от результата срав-
нения устанавливается признак результата.
Сравнение производится алгебраически с учетом знака, мантиссы и порядка каждого числа.
Равенство устанавливается по правилам вычитания с нормализацией чисел с плавающей точ-
кой. Если промежуточная сумма, включая дополнительную цифру, равна нулю, операнды рав-
ны. Неравенство порядков не является определяющим при установлении величины числа, так как мантиссы могут иметь различное количество нулевых старших цифр. В результате опера-
ции ни один из операндов не изменяется.
Никогда не возникает переполнения порядка, исчезновения порядка или потери значимости.
Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.
Признак результата:
0 – операнды равны;
1– первый операнд меньше;
2– первый операнд больше;
3– не бывает.
Программные прерывания:
операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);
доступ (выборка второго операнда в командах CE и CD);
спецификация.
287
Замечания по программированию
Два числа с нулевыми мантиссами считаются равными, даже если они различаются знака-
ми или характеристиками.
ДЕЛЕНИЕ
DER R1,R2 |
|
[RR, ???????? ????????] |
|
|||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
3D |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
DE |
R1,D2(X2,B2) |
[RX, ???????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
7D |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
DDR |
R1,R2 |
|
[RR, ??????? ????????] |
|
||||||
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
¦ |
2D |
¦ |
R1 |
¦ |
R2 |
¦ |
|
|
|
|
+-------------------- |
|
|
|
|
|
+ |
|
|
|
|
0 |
7 |
8 |
11 |
12 |
15 |
|
|
|
|
|
DD |
R1,D2(X2,B2) |
[RX, ??????? ????????] |
||||||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ |
6D |
¦ |
R1 |
¦ |
X2 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
31 |
|
Первый операнд (делимое) делится на второй операнд (делитель), и нормализованное частное помещается на место первого операнда. Остаток не сохраняется.
Деление с плавающей точкой заключается в вычитании характеристик и делении мантисс.
Операнды предварительно нормализуются, а разность характеристик делимого и делителя,
увеличенная на 64, используется как характеристика промежуточного частного.
В образовании мантиссы частного принимают участие все цифры мантисс делимого и дели-
теля. Нормализация промежуточного частного никогда не требуется, однако может потребо-
ваться сдвиг вправо на одну цифровую позицию. При этом характеристика промежуточного частного соответственно корректируется. Затем мантисса промежуточного частного усекается до мантиссы результата нужной длины.
Знак частного определяется по правилам алгебры при условии, что частное не является ис-
тинными нулем; в последнем случае устанавливается положительный знак.
288
Если значение характеристики конечного частного превышает 127 и мантисса не равна ну-
лю, фиксируется переполнение порядка. Операция завершается, и происходит программное прерывание. Результат нормализуется, знак и мантисса сохраняют правильные значения, а ха-
рактеристика становится на 128 меньше действительного значения.
Если значение характеристики нормализованного частного меньше нуля и мантисса не рав-
на нулю, то фиксируется исчезновение порядка. Если бит маски исчезновения порядка равен единице, то происходит программное прерывание. Результат нормализуется, знак и мантисса сохраняют правильные значения, а характеристика становится на 128 больше действительного значения. Если бит маски исчезновения порядка равен нулю, то программное прерывание не происходит; вместо этого операция завершается формированием частного, равного истинному нулю.
Сигнал об исчезновении порядка не возникает, если характеристика операнда становится меньше нуля в результате предварительной нормализации или же характеристика промежу-
точного частного меньше нуля, однако конечное частное может быть представлено без того,
чтобы возникло исчезновение порядка.
Если мантисса делителя равна нулю, фиксируется особый случай деления с плавающей точкой. Операция подавляется, и происходит программное прерывание по особому случаю де-
ления с плавающей точкой.
Если мантисса делимого равна нулю, формируется частное, равное истинному нулю, а воз-
можное переполнение или исчезновение порядка не фиксируется. Однако попытка разделить нуль на нуль приводит к тому, что операция подавляется и происходит программное прерыва-
ние по особому случаю деления с плавающей точкой.
Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; иначе фиксируется особый случай спецификации.
Признак результата не изменяется.
Программные прерывания:
операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);
доступ (выборка второго операнда в командах DE и DD);
спецификация;
переполнение порядка;
исчезновение порядка;
деление с плавающей точкой.
ПОПОЛАМ
HER R1,R2 [RR, ???????? ????????]
+-------------------- |
|
|
|
|
+ |
¦ 34 |
|
¦ |
R1 |
¦ |
R2 ¦ |
+-------------------- |
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
289
HDR R1,R2 [RR, ??????? ????????]
+-------------------- |
|
|
|
|
+ |
¦ 24 |
|
¦ |
R1 |
¦ |
R2 ¦ |
+-------------------- |
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
Второй операнд делится на число 2, и нормализованное частное помещается на место пер-
вого операнда.
Мантисса второго операнда сдвигается вправо на одну двоичную позицию; при этом содер-
жимое младшей позиции помещается в старшую позицию дополнительной цифры, а в старшую двоичную позицию мантиссы помещается нуль. Затем промежуточный результат нормализует-
ся и нормализованное частное помещается на место первого операнда. Дополнительная циф-
ра участвует в нормализации.
Знак частного совпадает со знаком второго операнда при условии, что частное не является истинным нулем; в последнем случае устанавливается положительный знак.
Если характеристика нормализованного частного меньше нуля и мантисса не равна нулю,
то фиксируется исчезновение порядка. Если бит маски исчезновения порядка равен единице,
то происходит программное прерывание. Результат нормализуется, знак и мантисса сохраняют правильные значения, а характеристика становится на 128 больше действительного значения.
Если бит маски исчезновения порядка равен нулю, то программное прерывание не происходит;
вместо этого операция завершается формированием частного, равного истинному нулю.
Если мантисса второго операнда равна нулю, формируется результат, равный истинному нулю, и никакие особые случаи не фиксируются.
Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.
Признак результата не изменяется.
Программные прерывания:
операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);
спецификация;
переполнение порядка.
Замечания по программированию
Как в случае коротких, так и в случае длинных операндов данная операция эквивалентна операции деления с делителем, равным числу 2. Аналогично результат выполнения команды
HDR совпадает с результатом выполнения команды MDR или MD, если в качестве множителя взята дробь ?. Ни одна из операций умножения не соответствует команде HER, так как при умножении никогда не образуется короткий результат.
290