Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KOMAROV.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.32 Mб
Скачать

Допустимые регистры xop и условия cond см. П. 1.17.7.А.

Пример: IF GT SB = EXPADJ SI;

Описание: Если команда выполняется (условие отсутствует или ве­р­нуло TRUE), то процессор производит извлечение блочной экспоненты массива (блока) входных операндов, под которой понимается максимальная экспонента (с учетом знака) из всех экспонент блока. Это значение находится в регистре SB.

Перед первым использованием команды EXPADJ в регистр SB должно быть записано значение –16 (минимальная величина). Далее при каждом вызове команды она извлекает экспоненту и сравнивает ее значение с содержимым регистра SB. Если текущая экспонента больше содержимого регистра SB, то ее значение записывается в регистр SB. В противном случае, содержимое регистра SB не изменяется. Очевидно, что после обработки всего блока чисел в регистре SB будет находиться максимальная экспонента всего блока.

Команда EXPADJ является инспекционной (проверочной) командой, поскольку не выполняет никаких сдвигов.

Эта команда не может применяться к переполненным числам и к младшим половинам чисел с двойной точностью.

Флаги состояния: не изменяются.

Е) НЕПОСРЕДСТВЕННЫЙ АРИФМЕТИЧЕСКИЙ СДВИГ

SR = [SR OR] ASHIFT xop BY <exp>

(HI)

;

(LO)

Синтаксис:

Допустимые регистры xop см. П. 1.17.7.А.

Допустимое значение <exp> – любая константа от –128 до 127.

Пример: SR = SR OR ASHIFT SR0 BY 3 (LO); {нельзя “+3”}

Описание: Процессор производит арифметический сдвиг битов операнда. Направление и число сдвигов зависит от значения экспоненты, введенной непосредственным числом <exp>.

Положительное значение <exp> (перед ним нельзя ставить знак “+”) вызывает левый сдвиг, отрицательное – правый сдвиг. Сдвинутый операнд может быть размещен в старшей половине выходного поля SHIFTER (опция HI) или в младшей половине (опция LO). Сдвинутый операнд может быть также подвергнут операции логического ИЛИ с текущим содержимым регистра SR (опция SR OR).

При размещении сдвинутого операнда в 32-битном выходном поле слева от СЗР распространяется знак операнда, а справа от МЗР распространяется ноль. Биты сдвинутого операнда, выходящие за SR31 (при левом сдвиге) или за SR0 (при правом сдвиге) опускаются.

При сдвиге с двойной точностью константа <exp> используется для обеих половин операнда. В первом цикле сдвигается старшая половина операнда с двойной точностью (команда ASHIFT используется с опцией HI). Младшая половина операнда с двойной точностью сдвигается с помощью команды LSHIFT, которая использует с опции LO и SR OR. Это препятствует распространению знака младшей половины операнда, что может исказить результат сдвига.

Флаги состояния: не изменяются.

Ж) НЕПОСРЕДСТВЕННЫЙ ЛОГИЧЕСКИЙ СДВИГ

SR = [SR OR] LSHIFT xop BY <exp>

(HI)

;

(LO)

Синтаксис:

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