Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IBM370

.pdf
Скачиваний:
53
Добавлен:
02.06.2015
Размер:
5.21 Mб
Скачать

Истинный нуль получается в результате выполнения команды ПОПОЛАМ только в том слу-

чае, когда мантисса второго операнда равна нулю или когда возникает исчезновение порядка при установленной в нуль маске исчезновения порядка. Если даже все биты мантиссы второго операнда, кроме самого младшего, равны нулю, то этот последний сдвигается в старший бит дополнительной цифры и участвует в нормализации результата.

ЗАГРУЗКА

LER R1,R2

 

[RR, ???????? ????????]

 

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

38

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

LE

R1,D2(X2,B2)

[RX, ???????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

78

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

31

 

LDR

R1,R2

 

[RR, ??????? ????????]

 

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

28

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

LD

R1,D2(X2,B2)

[RX, ??????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

68

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

31

 

Второй операнд без изменения помещается на место первого операнда.

Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата не изменяется.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

доступ (выборка второго операнда в командах LE и LD);

спецификация.

291

 

ЗАГРУЗКА И ПРОВЕРКА

LTER

 

R1,R2

[RR, ???????? ????????]

+

 

 

 

 

 

+

¦

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

+

0

7

8

11

12

15

 

LTDR

 

R1,R2

[RR, ??????? ????????]

+--------------------

 

 

 

 

 

+

¦

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

+

0

7

8

11

12

15

 

Второй операнд без изменения помещается на место первого операнда, и в зависимости от его знака и величины устанавливается признак результата.

Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

0 – мантисса результата равна нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

спецификация.

Замечания по программированию

Если один и тот же регистр задан для определения и первого, и второго операндов, опера-

ция эквивалентна проверке без перемещения данных.

ЗАГРУЗКА ДОПОЛНЕНИЯ

LCER R1,R2 [RR, ???????? ????????]

+--------------------

 

 

 

 

+

¦ 33

 

¦

R1

¦

R2 ¦

+--------------------

 

 

 

 

+

0

7

8

11

12

15

292

LCDR R1,R2 [RR, ??????? ????????]

+--------------------

 

 

 

 

+

¦ 23

 

¦

R1

¦

R2 ¦

+--------------------

 

 

 

 

+

0

7

8

11

12

15

Второй операнд с противоположным знаком помещается на место первого операнда.

Значение знакового бита изменяется на противоположное, даже если мантисса равна нулю.

Характеристика и мантисса не изменяются.

Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

0 – мантисса результата равна нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

спецификация.

ЗАГРУЗКА ОТРИЦАТЕЛЬНАЯ

LNER

 

R1,R2

[RR, ???????? ????????]

+

--------------------

 

 

 

 

 

+

¦

31

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

 

+

0

 

7

8

11

12

15

 

LNDR

 

R1,R2

[RR, ??????? ????????]

+--------------------

 

 

 

 

 

 

+

¦

21

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

 

+

0

 

7

8

11

12

15

 

Второму операнду присваивается знак минус, и результат помещается на место первого операнда.

Знаковый бит устанавливается равным единице, даже если мантисса равна нулю. Характе-

ристика и мантисса не изменяются.

Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

293

0 – мантисса результата равна нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

спецификация.

ЗАГРУЗКА ПОЛОЖИТЕЛЬНАЯ

LPER

 

R1,R2

[RR, ???????? ????????]

+

--------------------

 

 

 

 

 

+

¦

30

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

 

+

0

 

7

8

11

12

15

 

LPDR

 

R1,R2

[RR, ??????? ????????]

+--------------------

 

 

 

 

 

 

+

¦

20

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

 

+

0

 

7

8

11

12

15

 

Второму операнду присваивается знак плюс, и результат помещается на место первого операнда.

Знаковый бит устанавливается равным нулю, даже если мантисса равна нулю. Характери-

стика и мантисса не изменяются.

Поля R1 и R2 должны определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата:

0 – мантисса результата равна нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

спецификация.

294

 

ЗАГРУЗКА С ОКРУГЛЕНИЕМ

LRER

 

R1,R2

[RR,

 

 

 

 

 

 

??????? ?????? ???????,

 

 

 

 

 

???????? ?????? ???????]

+

 

 

 

 

 

+

¦

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

+

0

7

8

11

12

15

 

LRDR

 

R1,R2

[RR,

 

 

 

 

 

 

??????????? ?????? ???????,

 

 

 

 

 

??????? ?????? ???????]

+--------------------

 

 

 

 

 

+

¦

 

¦

R1

¦

R2

¦

+--------------------

 

 

 

 

 

+

0

7

8

11

12

15

 

Второй операнд округляется до следующего меньшего формата, и результат помещается на место первого операнда.

Округление заключается в том, что к содержимому бита 32 длинного второго операнда или бита 72 расширенного второго операнда прибавляется единица, и перенос, если он возник,

распространяется влево. В обоих случаях знак мантиссы не принимается во внимание, и сло-

жение выполняется так, как если бы мантисса была положительной.

Если округление вызывает перенос из старшей цифровой позиции мантиссы, то мантисса сдвигается вправо на одну шестнадцатеричную позицию. а характеристика увеличивается на единицу.

Знак результата совпадает со знаком второго операнда. Нормализация не производится.

Если при сдвиге мантиссы вправо характеристика становится больше 127, фиксируется пе-

реполнение порядка. Операция завершается загрузкой числа, характеристика которого на 128

меньше действительного значения, и происходит программное прерывание из-за переполне-

ния порядка. Результат является нормализованным числом, а знак и мантисса сохраняют пра-

вильные значения.

Исчезновение порядка и потеря значимости не могут возникнуть.

Поле R1 должно определять регистры 0, 2, 4 или 6. Поле R2 в команде LRER должно опре-

делять регистры 0, 2, 4 или 6, а поле R2 в команде LRDR – регистры 0 или 4. В противном слу-

чае фиксируется особый случай спецификации.

Признак результата не изменяется.

Программные прерывания:

295

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

спецификация;

переполнение порядка.

УМНОЖЕНИЕ

MER R1,R2

 

[RR, ???????? ????????,

 

 

 

 

??????? ????????????]

 

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

3C

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

ME

R1,D2(X2,B2)

[RX, ???????? ????????,

 

 

 

 

 

 

??????? ????????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

7C

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

 

31

MDR

R1,R2

 

[RR, ??????? ????????]

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

2C

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

MD

R1,D2(X2,B2)

[RX, ??????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

6C

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

 

31

MXDR

R1,R2

[RR, ??????? ????????,

 

 

 

 

 

??????????? ????????????]

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

27

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

296

MXD

 

R1,D2(X2,B2)

[RX, ??????? ????????,

 

 

 

 

 

 

 

??????????? ????????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

¦

67

 

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

0

 

7

8

11

12

15

16

19

20

 

31

MXR

 

R1,R2

 

[RR, ??????????? ????????]

+--------------------

 

 

 

 

 

 

+

 

 

 

 

¦

26

 

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

 

+

 

 

 

 

0

 

7

8

11

12

15

 

 

 

 

 

Нормализованное произведение второго операнда (множителя) и первого операнда (мно-

жимого) заносится на место первого операнда.

Умножение двух чисел с плавающей точкой заключается в сложении порядков и умножении мантисс. Операнды предварительно нормализуются, и сумма их характеристик, уменьшенная на 64, используется в качестве характеристики промежуточного произведения.

Произведение мантисс формируется таким образом, что результат всегда содержит точное значение произведения мантисс, усеченное до нужной длины. Если результат сразу же полу-

чился нормализованным и не требуется дополнительной нормализации, то мантисса промежу-

точного произведения усекается до длины мантиссы результата, а характеристика промежу-

точного произведения становится характеристикой конечного произведения. Если в мантиссе промежуточного произведения имеется одна старшая нулевая цифра, то производится сдвиг мантиссы влево на одну цифровую позицию с одновременным переносом дополнительной цифры в младшую позицию мантиссы результата и характеристика промежуточного произве-

дения уменьшается на единицу. Затем мантисса промежуточного произведения усекается до длины мантиссы результата.

В случае команд MER и ME мантиссы множителя и множимого состоят из шести цифр, а

мантисса произведения – из 14 цифр, причем две младшие цифры мантиссы всегда равны ну-

лю. В случае команд MDR и MD мантиссы множителя и множимого имеют по 14 цифр и ман-

тисса конечного произведения усекается до 14 цифр. В случае команд MXDR и MXD мантиссы множимого и множителя имеют по 14 цифр, причем множимое занимает старшую часть перво-

го операнда; мантисса конечного произведения состоит из 28 цифр и является точным произ-

ведением мантисс операндов. В случае команды MXR мантиссы множителя и множимого со-

держат по 28 цифр и мантисса конечного произведения усекается до 28 цифр.

Знак произведения определяется по правилам алгебры. Если все цифры мантиссы произ-

ведения являются нулями, то произведению присваивается положительный знак.

297

Если характеристика нормализованного произведения превышает 127 и мантисса произве-

дения не равна нулю, то фиксируется переполнение порядка. Операция завершается умень-

шением характеристики на 128 по сравнению с ее действительным значением. Если в случае расширенных результатов характеристика младшей части также превышает 127, то и она уменьшается на 128. Результат является нормализованным числом, а знак и мантисса сохра-

няют правильные значения. После этого происходит программное прерывание из-за перепол-

нения.

Если характеристика промежуточного произведения превышает 127, но в результате нор-

мализации попадает в установленный диапазон, то переполнение порядка не фиксируется.

Если характеристика нормализованного произведения меньше нуля, а мантисса не равна нулю, имеет место особый случай исчезновения порядка. Если бит маски исчезновения поряд-

ка равен единице, операция завершается путем формирования характеристики, которая на 128

больше по сравнению с действительным значением, и происходит программное прерывание из-за исчезновения порядка. Результат является нормализованным числом, а знак и мантисса сохраняют правильные значения. Если бит маски исчезновения порядка равен нулю, то про-

граммное прерывание не происходит; вместо этого операция завершается формированием произведения, равного истинному нулю. В случае расширенных операндов исчезновение по-

рядка не фиксируется, если характеристика младшей части меньше нуля, а характеристика старшей части больше или равна нулю.

Если характеристика операнда становится меньше нуля во время предварительной норма-

лизации, но характеристика нормализованного произведения попадает в установленный диа-

пазон, то исчезновение порядка не фиксируется.

Если какая-либо из мантисс операндов равна нулю или обе эти мантиссы равны нулю, то результат представляет собой истинный нуль, и никакие особые случаи не фиксируются.

Поле R1 в командах MER, ME, MDR и MD и поле R2 в командах MER, MDR и MXDR должны определять регистры 0, 2, 4 или 6. Поле R1 в командах MXDR, MXD и MXR и поле R2 в команде

MXR должны определять регистры 0 или 4. В противном случае фиксируется особый случай спецификации.

Признак результата не изменяется.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой или – в случае команд MXDR, MXD и MXR – отсутствуют средства обработки чисел с плавающей точкой повышенной точности);

доступ (выборка второго операнда в командах ME, MD или MXD);

спецификация;

переполнение порядка;

исчезновение порядка.

298

Замечания по программированию

Перестановка операндов при умножении с плавающей точкой не влияет на значение произ-

ведения.

ЗАПИСЬ В ПАМЯТЬ

STE

 

R1,D2(X2,B2)

[RX, ???????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

¦

70

 

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

0

 

7

8

11

12

15

16

19

20

 

31

STD

 

R1,D2(X2,B2)

[RX, ??????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

¦

60

 

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

 

+

0

 

7

8

11

12

15

16

19

20

 

31

Первый операнд без изменения записывается в память по адресу второго операнда.

Поле R1 должно определять регистры 0, 2, 4 или 6; в противном случае фиксируется особый случай спецификации.

Признак результата не изменяется.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой);

доступ (запись второго операнда);

спецификация.

ВЫЧИТАНИЕ С НОРМАЛИЗАЦИЕЙ

SER

R1,R2

 

[RR, ???????? ????????]

 

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

3B

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

SE

R1,D2(X2,B2)

[RX, ???????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

7B

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

31

 

299

SDR

R1,R2

 

[RR, ??????? ????????]

 

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

2B

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

SD

R1,D2(X2,B2)

[RX, ??????? ????????]

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

¦

6B

¦

R1

¦

X2

¦

B2

¦

D2

¦

+--------------------------------------

 

 

 

 

 

 

 

 

 

+

0

7

8

11

12

15

16

19

20

31

 

SXR

R1,R2

 

[RR, ??????????? ????????]

+--------------------

 

 

 

 

 

+

 

 

 

 

¦

37

¦

R1

¦

R2

¦

 

 

 

 

+--------------------

 

 

 

 

 

+

 

 

 

 

0

7

8

11

12

15

 

 

 

 

 

Второй операнд вычитается из первого операнда, и нормализованная разность помещается на место первого операнда.

Команда ВЫЧИТАНИЕ С НОРМАЛИЗАЦИЕЙ выполняется аналогично команде СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ и отличается от последней лишь тем, что перед сложением знак второго операнда изменяется на противоположный.

Поле R1 в командах SER, SE, SDR и SD и поле R2 в командах SER и SDR должны опреде-

лять регистры 0, 2, 4 или 6. Поля R1 и R2 в команде SXR должны определять регистры 0 или 4.

В противном случае фиксируется особый случай спецификации.

Признак результата:

0 – мантисса результата равна нулю;

1 – результат меньше нуля;

2 – результат больше нуля;

3 – не бывает.

Программные прерывания:

операция (если в данной установке отсутствуют средства обработки чисел с плавающей точкой или в случае команды SXR отсутствуют средства обработки чисел с плавающей точкой повышенной точности);

доступ (выборка второго операнда в командах SE и SD);

спецификация;

переполнение порядка;

исчезновение порядка;

потеря значимости.

300

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]