Анализ операций умножения и деления в конкретной модели АЛУ — страница 13

  • Просмотров 5687
  • Скачиваний 417
  • Размер файла 50
    Кб

добавлением в MR. Например, 31-ый бит регистра Р соответствует 32-му биту регистра MR (что в свою очередь соответствует биту 0 регистра MR2), a нулевой бит регистра Р соответствует 1-му биту регистра MR (что в свою очередь соответствует биту 1 регистра MRO). Младший бит MR просто очищается. Оставшиеся семь бит MR2 заполняются знаком регистра Р (то есть 31 битом Р). В целом режиме 32-битный регистр результата не сдвигается при добавлении к регистру

MR. Восемь бит MR2 заполняются знаком Р. Режим выбирается 4-ым битом регистра режима и состояния (MSTAT). Единица в этом бите означает целочисленный режим; ноль означает дробный режим. В обоих режимах содержимое регистра Р подается на вход сумматора, который прибавляет или вычитает новое произведение из текущего содержимого регистра MR, чтобы сформировать окончательный результат в R. Для реализации вычислений с повышенной точностью,

умножитель позволяет осуществлять любые комбинации операндов Х и Y (умножать знаковое на знаковое (SS),беззнаковое на знаковое (US), беззнаковое на беззнаковое (UU), знаковое на беззнаковое (SU) ). Форматы операндов записываются как часть инструкции. Поэтому они динамически выбираются из каждой инструкции умножения. 8-битный регистр MR2 при записи/чтении располагается в восьми младших битах шин данных. При чтении MR2 через шину DMD или на

шину промежуточных результатов (R) происходит его знаковое расширение до 16 бит. MR1 также имеет возможность автоматического расширения знака. Тогда MR1 загружается с шины DMD, все биты в MR2 автоматически заполняются знаковым битом МR1, так что MR2 служит расширением MR1. Чубы загрузить в регистр МR2 значение, отличное от знакового расширения MR1, надо загружать MR2 после загрузки МR1. Загрузка же MR0 не влияет ни на один из оставшихся регистров;

знаковое расширение не происходит при загрузке MR0. Переполнение, насыщение и окружение в МAС Сумматор генерирует флаг переполнения МV, который загружается в регистр арифметического статуса процессора (АSТАТ) после выполнения каждой операции MАС-ом. Этот бит устанавливается в случае, если результат аккумулятора, интерпретируемый как число с дополнением до 2, (MR) пересекает 32-битную границу (МR1/МR2) .То есть флаг МV устанавливается,

если верхние девять бит MR не все одновременно равны 0 или 1. Регистр МR имеет возможность выполнять операцию насыщения, то есть устанавливаться в максимальное положительное (отрицательное) число при переполнении. Операция насыщения зависит от флага МV в регистре ASTAT и знакового бита регистра MR2. Следующая таблица показывает эффект операции насыщения МR Флаг MV Старший бит МR2 Результат после насыщения 0 1 или 0 без изменения 1 0 00000000