Умножитель модифицирует 4 флага состояния в регистре ASTAT после каждой операции.
Бит | Имя | Определение |
MN | отрицательный результат | |
MV | переполнение | |
MU | потеря значимости | |
MI | некорректная ПЗ-операция |
Умножитель модифицирует также 4 "липких" флага в регистре STKY.
Бит | Имя | Определение |
MOS | переполнение при ФЗ-операции | |
MVS | переполнение при ПЗ-операции | |
MUS | потеря значимости | |
MIS | некорректная ПЗ-операция |
Инструкции умножителя
Инструкции умножителя и их действие на флаги описаны в приложении 3. В скобках после инструкции приводятся модификаторы, определяющие тип операндов и режим округления результата:
S – знаковый операнд;
U – беззнаковый операнд;
I – целый операнд;
F – дробный операнд(ы);
FR – дробные операнды, результат округлять в соответствии с установкой битов RND32 и TRUNC в регистре MODE1.
23. Сдвигатель. Функционирование сдвигателя. Выделение и депонирование битовых полей. Флаги состояния сдвигателя.
Сдвигатель
|
|
Операции сдвигателя
Сдвигатель берет от одного до трех входных операндов: X – операнд, который обрабатывается, Y – операнд, специфицирующий абсолютные значения величины сдвига, длины битовых полей или позиции битов, Z – операнд, который обрабатывается или модифицируется. X- и Z – операнды – всегда 32-битные ФЗ-величины. Y-операнд – 32-битная ФЗ-величина или 8-битное поле (shf8), позиционированное в регистре РФ в битах 15¸8. Входные операнды читаются из старших 32 битов ячейки РФ или непосредственно из инструкции.
Сдвигатель возвращает один результат в РФ. Некоторые инструкции сдвигателя порождают 8- или 6-битные результаты. Эти результаты помещаются в поля shf8 (биты 15¸8) или bit6 (биты 13¸8), при этом знак распространяется на старшие разряды регистра РФ. Таким образом, сдвигатель всегда возвращает 32-битный результат.