Структурнофункциональная организация процессоровАрифметическологическое устройство. Назначение и состав АЛУ. Арифметическо–логическое устройство предназначено:

 ●    для реализации стандартного набора арифметических и логических операций над 16–разрядными операндами X, Y, а также многоцикловой операции деле­ния с использованием двух имеющихся примитивов. Ниже приводится список стандартных функций АЛУ:

R=X+Y                      сложение X и Y

R=X+Y+CI                сложение X и Y с переносом;

R=XY                      вычитание Y из X;

R=XYCI–1            вычитание Y из X с заемом;

R=YX                      вычитание X из Y;

R=YXCI–1            вычитание X из Y с заемом;

R=–X                         арифметическое отрицание X;

R=–Y                         арифметическое отрицание Y;

R=Y+1                       инкремент Y;

R=Y–1                       декремент Y;

R= PASS X                результат равен операнду X;

R= PASS Y                результат равен операнду Y;

R=0 (PASS 0)            очистить результат;

R=ABS X                  абсолютное значение X;

R=X AND Y             логическое умножение;

R=X OR Y                 логическое сложение;

R=X XOR Y              сложение по модулю 2;

R=NOT X                  логическое отрицание X;

R=NOT Y                  логическое отрицание Y;

●     для выдачи информации о состоянии процессора. После выполнения опера­ции АЛУ генерирует (или обновляет) шесть флагов:

•      AZ — флаг нулевого результата (при всех стандартных операциях);

•      AN — флаг отрицательного результата (при всех стандартных операциях);

•      AV — флаг переполнения (при всех стандартных операциях);

•      АС — флаг переноса (при всех Стандартных операциях);

•      AS — флаг знака входного Х–операнда (при операции ABS);

•      AQ — флаг примитива деления (при делении).

рис. 8.3.1

В состав блока АЛУ входят (рис. 8.3.1):

●     непосредственно ALU с двумя регистрами для входных операндов X, Y и ре­гистром результата R;

●     входные регистры АХ0, АХ1 и AY0, AY1 для хранения Х– и Y–операндов;

●     регистр результата AR, в который загружаются результаты выполненной в АЛУ операции для их вывода на шину результата R или на шину данных па­мяти данных DMD;

●     регистр обратной связи AF, в который загружаются результаты выполненной в АЛУ операции с целью их использования в качестве операнда Y;

●     мультиплексоры для выбора загружаемых 16–разрядных операндов в регистры AY0, AY1, AR, X, Y.

Арифметическо–логическое устройство содержит два набора (банка) про­граммно доступных регистров AХ0, AХ1, AY0, AY1, AR, AF. В каждый момент вре­мени доступным является лишь один набор. Для активизации набора можно ис­пользовать бит SEC_REG в позиции MSTAT.0 регистра режима и статуса MSTAT (табл. 8.3.9) или команды DIS SEC_REG, ENA SEC_REG.

табл. 8.3.9

Путем установки бита AR_SAT = 1 (позиция MSTAT.3 в регистре режима и стату­са процессора) регистр результата AR переводится в режим насыщения, в кото­ром его содержимое при переполнении (флаг AV = 1) фиксирует:

●     максимальное положительное число 0111111111111111, если флаг переноса AC = 0;

●     максимальное отрицательное число 1000000000000000, если AC = 1.

Бит AV_LATCH = 1 (позиция MSTAT.2 в регистре режима и статуса процессора) позволяет установить режим «защелки». В этом режиме:

●     после переполнения АЛУ флаг AV остается поднятым (AV = 1) и в тех случаях, когда последующие команды не вызывают переполнения АЛУ;

●     флаг AV может быть очищен только прямой записью нуля в позицию ASTAT.2 регистра арифметического статуса ASTAT (табл. 8.3.8).

табл. 8.3.8

Деление. Для операции деления в АЛУ используется дополнительная сдви­говая логика, не показанная на рис. 8.3.1. Деление может быть знаковым и без­знаковым. Деление беззнаковых чисел реализуется с помощью команды–прими­тива DIVQ, при выполнении которой формируется один бит частного за процес­сорный цикл. Шестнадцатикратное выполнение команды DIVQ позволяет полу­чить 16 бит частного. При делении знаковых чисел предварительно определяется знак частного с помощью другой команды–примитива DIVS. После этого 15–крат­ное использование команды–примитива DIVQ позволяет получить значение част­ного с одинарной точностью.

рис. 8.3.2

Для рассмотрения операции определении знака частного (DIVS) воспользуем­ся схемой на рис. 8.3.2. В исходном состоянии:

●     старшая часть делимого Y может располагаться в регистрах AY1 или AF, млад­шая часть — в регистре AY0;

●     делитель X может располагаться в AХ0, AХ1 или любом регистре результата. При выполнении команды DIVS:

●     с помощью операции исключающее ИЛИ над старшими битами делимого и делителя определяется знаковый бит частного, который загружается в самый младший разряд регистра AY0, а также в регистр арифметического статуса ASTAT как флаг AQ;

●     содержимое регистра AY0 сдвигается влево на один разряд, при этом самый старший бит AY0 займет место самого младшего бита LSB в регистре AF;

●     пятнадцать младших бит регистра результата R ALU займут место оставших­ся пятнадцати старших разрядов регистра AF.

Таким образом, в результате выполненной операции DIVS начальное содержи­мое пары регистров AFAY0 сдвигается влево на один разряд, а знаковый бит час­тного помещается в самый младший разряд AY0.

Для рассмотрения операции деления беззнаковых чисел (DIVQ) воспользуем­ся схемой на рис. 8.3.3.

рис. 8.3.3

В исходном состоянии:

●     старшая часть делимого Y должна располагаться в регистре AF, младшая часть — в регистре AY0;

●     делитель X может располагаться в AX0, AX1 или любом регистре результата AR;

●     флаг AQ должен быть сброшен (AQ = 0). При выполнении команды DIVQ;

●     действия ALU определяются состоянием флага AQ. При AQ = 1 на выходе ALU результат R = Y+X; при AQ = 0 — R = YX;

●     с помощью операции исключающее ИЛИ над старшими битами делителя и операнда R на выходе ALU определяется флаг AQ, который загружается в ре­гистр арифметического статуса ASTAT, а также после инвертирования в са­мый младший разряд регистра AY0 как очередной бит частного;

●     содержимое регистра AY0 сдвигается влево на один разряд, при этом самый старший бит AY0 займет место самого младшего бита LSB в регистре АF;

●     пятнадцать младших бит регистра результата AR ALU займут мест оставших­ся пятнадцати старших разрядов регистра AF. Формат частного определяется из формата делимого и делителя: NL DL + 1 — число бит слева от десятичной точки частного; NR DR – 1 — число бит справа от десятичной точки частного, где NL, NR — число бит слева и справа от десятичной точки делимого; DL, DR — число бит слева и справа от десятичной точки делителя.

Для получения правильного результата при делении двух целых чисел (дели­мое в формате 32.0 и делитель в формате 16.0) необходимо предварительно сдвинуть делимое влево на один разряд, т. е. перевести делимое в формат 1.31.

Умножитель–аккумулятор. Назначение и состав. Умножитель–акумулятор МАС позволяет выполнить умножение двух 16–разрядных операндов (Х*Y), ум­ножение с накоплением суммы и разности (MR+X*Y; MRX*Y), очистку результата MR,  где MR — содержимое регистра результата.

рис. 8.3.4

В состав умножителя–аккумулятора входят (рис. 8.3.4):

●     умножитель, содержащий два входных 16–разрядных порта X, Y и один 32–раз­рядный выходной порт произведения P. Умножитель позволяет перемножать любые комбинации операндов X и Y: знаковый на знаковый (SS), беззнаковый на знаковый (US), знаковый на беззнаковый (SU), беззнаковый на беззнаковый (UU);

●     два входных регистра MX0, MX1 и MY0, MY1 для хранения Х– и Y– операндов;

●     сумматор–вычитатель, предназначенный для сложения и вычитания 40–раз­рядного операнда и 32–разрядного произведения. Разрядность сумматора–вычитателя превышает 32 бита, чтобы разрешить промежуточные переполне­ния при выполнении нескольких операций подряд. При появлении значащих бит выше 32–разрядной границы устанавливается флаг переполнения умно­жителя MV;

●     регистр результате MR шириной 40 бит, в который загружаются результаты выполненной в сумматоре–вычитателе операции для их вывода на шину результата R или на шину данных памяти данных DMD. Регистр MR состоит из двух 16–разрядных регистров MR0, MR1 и одного 8–разрядного регистра MR2. Каждый из этих регистров может быть напрямую загружен через шину DMD. Загрузка MR0 не влияет на содержимое регистров MR1, MR2. При за­грузке регистра MR1 с шины DMD все биты MR2 автоматически заполняются знаковым битом. Для заполнения регистра MR2 другими значениями, его следует загружать после MR1. Выводы регистра MR2 подключены к младшим битам шины DMD. При чтении регистра MR2 на шины DMD и R старшие 8 разрядов заполняются знаковыми битами;

●     регистр обратной связи MF, в который загружаются результаты (биты 16–31), выполненной в сумматоре–вычитателе операции, с целью их использования в качестве операнда Y;

●     мультиплексоры для выбора источника операндов при их загрузке в регистры MY0, MY1, MR0, MR1, MR2 и порты X, Y умножителя, а также для вывода ре­зультатов из регистров MR0, MR1, MR2 на шину DMD.

Умножитель–аккумулятор содержит два набора программно доступных регист­ров MX0, MX1, MY0, MY1, MR0, MR1, MR2, MF. В каждый момент времени доступным является лишь один набор. Для активизации набора используется бит SEC_REG в позиции MSTAT.0 регистра режима и Статуса MSTAT (табл. 8.3.9).

Основные режимы. Умножитель–аккумулятор обеспечивает выполнение операций в двух стандартных режимах:

●     в дробном режиме (для чисел в формате 1.15) при загрузке 32–битного произ­ведения Р в регистр результата MR происходит знаковое расширение и сдвиг содержимого влево на 1 бит. В частности, 31–й бит произведения Р соответ­ствует 32–у биту регистра MR (или биту 0 регистра MR2), а нулевой бит Р — первому биту регистра MR (или MR0). Младший (нулевой) бит MR (или MR0) очищается, старшие семь бит MR (или MR2) заполняются знаком (или 31–м битом) произведения P;

●     в целочисленном режиме (для целых чисел в формате 16.0) 32–битный ре­гистр произведения P загружается в регистры MR0, MR1. Восемь бит регист­ра MR2 заполняются знаком произведения Р.

Выбор режима осуществляется битом M_MODE (позиция MSTAT.4) регистра режима и состояния MSTAT (табл. 8.3.9): M_MODE=0 — дробный режим; M_MODE = 1 — целочисленный режим. В обоих режимах произведение P подает­ся на вход сумматора–вычитателя.

табл. 8.3.7

Переполнение. После выполнения каждой операции в сумматоре–вычита­теле формируется флаг переполнения MV, который заносится в позицию ASTAT.6 регистра арифметического статуса ASTAT (табл. 8.3.7). Флаг переполне­ния устанавливается (MV = 1) в том случае, если результат на выходе сумматора–вычитателя, интерпретируемый как число с дополнением до 2, пересекает 32–бит­ную границу. В этом случае 9 старших (знаковых) разрядов 40–битного регистра результата не равны одновременно 0 или 1.

Насыщение. Эта операция выполняется при установленном флаге переполне­ния (MV = 1) в регистре арифметического статуса ASTAT (табл. 8.3.7). В ре­зультате операции содержимое регистра результата MR принимает максимальное:

●     положительное значение 00000000 0111111111111111 1111111111111111, если старший разряд регистра MR1 равен 0;

●     отрицательное значение 11111111 1000000000000000 0000000000000000, если старший разряд регистра MR1 равен 1.

Операция насыщения используется после умножений–аккумуляций для конт­роля правильности полученных результатов. Если MV = 0, то операция насыщения оставляет результат неизменным.

Округление. С помощью опции RND аккумулятор позволяет округлять 40–битный результат до 16–битного. Округленный результат передается в регистр MR или MF. При использовании регистра MR округленный 16–битный результат содержится в регистре MR1. Содержимое регистров MR2, MR1 можно рассмат­ривать как результат, округленный до 24 бит.

рис. 8.3.5

Устройство сдвига. Назначение и состав. Устройство сдвига SHIFTER предназначено для выполнения сдвиговых операций 16–разрядных операндов, включающих арифметические и логические сдвиги, нормализацию и денормализацию, определение экспоненты. Устройство сдвига содержит (рис. 8.3.5):

 

●     сдвиговый массив размерности 16x32, в котором исходный 16–разрядный операнд за один цикл помещается на любую позицию в 32–разрядном выход­ном слове, начиная с полностью сдвинутого операнда вправо и кончая пол­ностью сдвинутым операндом влево;

●     детектор экспоненты для определения степени операнда (см. ниже);

●     регистр операндов SI (Shifter InOut), обеспечивающий 16–разрядный операнд для сдвигового массива и детектора экспоненты;

●     регистр результата SR (Shifter Result) для хранения 32–разрядного результата сдвигового массива, состоящий из двух 16–битных регистров SR0, SR1. Ин­формация в регистр SR может быть занесена с шины данных памяти данных DMD и считана на шины DMD и R. Регистр SR может быть также задейство­ван в цепи обратной связи через логику управления OR/PASS для реализации сдвигов с двойной точностью;

●     восьмиразрядный регистр экспоненты SE (Shifter Exponent), содержащий по­рядок в виде 8–разрядного дополнительного кода при выполнении операций нормализации и денормализации;

●     пятиразрядный регистр для блочных операций с плавающей точкой SB (Shifter Block). Он содержит значение экспоненты блока, т. е. то значение, на которое компоненты блока должны быть сдвинуты, чтобы нормализовать самое большое значение. Чтение и запись регистра осуществляется через 5 младших разрядов шины DMD. Значения записываются в дополнительном коде в формате 5.0;

●     логику OR/PASS, позволяющую получить правильный результат (см. приве­денные ниже примеры) при операциях с двойной точностью. При выборе мо­дификатора PASS результат сдвигового массива загружается в регистр SR без изменения. С помощью модификатора OR выполняется операция ИЛИ над результатом сдвигового массива и текущим содержимым регистра SR. Результат операции ИЛИ помещается в регистр SR.

При считывании информации из регистров SE, SB на шину DMD происходит расширение знака до 16–битного значения. Устройство сдвига содержит два бан­ка регистров SI, SE, SR, SB. Для выбора банка используется бит SEC_REG в пози­ции MSTAT.0 регистра режима и статуса MSTAT (табл. 8.3.9).

Принцип работы устройства. Сдвиг входного 16–разрядного операнда осуществляется под действием контрольного кода и сигнала HI/LO, поступающих соответственно на входы С и R сдвигового массива. Контрольный код представ­ляет собой 8–разрядный операнд, указывающий направление сдвига и число раз­рядов, на которое следует произвести сдвиг. Положительное значение операнда указывает на левый сдвиг (или сдвиг вверх), отрицательное — на правый сдвиг (или сдвиг вниз). Контрольным кодом могут служить содержимое регистра SE в прямой и инверсной форме или непосредственно команда. Сигнал HI/LO опре­деляет начальную точку сдвига: в режиме HI сдвиги производятся относительно SR1 (верхней половины выходного поля); в режиме LO — относительно SR0 (ниж­ней половины).

Устройство сдвига заполняет все биты 32–битного результата справа от пози­ции операнда нулями, слева — битом расширения X, который может быть взят из трех источников: знаковый бит операнда, бит переноса АС из регистра ASTAT и 0.

Детектор экспоненты (степени) позволяет выделить степень из входного 16–разрядного операнда и может находиться в трех состояниях, по–разному интер­претирующих степень входного операнда:

●     в состоянии HI входной операнд воспринимается как двоичное число с одинар­ной точностью или верхняя половина двоичного числа с двойной точностью. Детектор экспоненты определяет степень операнда — число ведущих знако­вых разрядов, на которое должен быть сдвинут влево входной операнд, что­бы остался только один (старший) знаковый бит, и вырабатывает отрицатель­ный код для реализации требуемого сдвига. Этот код может служить экспонентой для мантиссы, полученной удалением знаковых бит;

●     в состоянии HIX (HI–eXtend stade) входной операнд интерпретируется как ре­зультат операции сложения–вычитания, при выполнении которой в АЛУ могло произойти переполнение. В этом состоянии детектор экспоненты принимает во внимание флаг AV арифметического переполнения. Если AV = 1, детектор экс­поненты выдает степень +1. Это свидетельствует о том, что необходим лишний бит в нормализованной мантиссе, в качестве которого служит флаг переноса АС в АЛУ. При AV=0 разницы между состояниями HIX и HI не существует. В состояниях HIX и HI при определении степени детектор экспоненты выдает бит SS (Shifter Sign), который заносится в регистр арифметического статуса ASTAT (бит ASTAT.7). При AV = 0 бит SS является старшим разрядом входного операнда. При AV = 1 выводится инверсия бита SS для сохранения знака пе­реполнившегося значения;

●     в состоянии LO входной операнд интерпретируется как младшая половина числа с двойной точностью, а выводимый в регистр арифметического стату­са ASTAT сигнал SS — как знак числа.

Регистр экспоненты SE загружается результатом детектора экспоненты в том случае, когда старшая половина 32–битного числа с двойной точностью, обрабо­танная первой, содержит лишь знаковые биты. При этом вывод детектора экспо­ненты сдвигается на –16, чтобы принять во внимание тот факт, что операнд на са­мом деле является младшей половиной 32–разрядного операнда.

В табл. 8.3.1 для рассмотренных состояний приведены входные операнды и соответствующие им значения экспоненты (в графе ДЭ — детектор экспоненты).

табл. 8.3.1

Ниже с использованием примеров рассмотрены особенности выполнения опе­раций определения экспоненты блока, немедленных сдвигов, денормализации и нормализации.

Определение экспоненты (степени) блока. Эта операция, выполня­емая с помощью команды EXPANDJ, позволяет определить степень самого боль­шого по масштабу числа из массива чисел.

рис. 8.3.5

При определении экспоненты используется регистр блочных операций SB. В исходном состоянии регистр SB загружен числом –16 (SB = –16), которое посту­пает на один из входов цифрового компаратора (см. рис. 8.3.5). На другой вход компаратора с выхода детектора экспоненты подается значение экспоненты EXP1 первого элемента массива. Если EXP1>SB, то значение EXP1 загружается в ре­гистр SB, т. е. SB = EXP1. В противном случае содержимое SB остается неизмен­ным. Подобным образом обрабатываются последующие элементы массива. Пос­ле обработки всех элементов массива регистр SB будет содержать наибольшую степень, значение которой лежит в пределах от –15 до 0.

Отметим, что операция определения экспоненты является просмотровой опе­рацией. Для выполнения операции нормализации необходимо скопировать со­держимое регистра SB в регистр экспоненты SE.

В табл. 8.3.2 приведен пример определения экспоненты блока из трех элемен­тов. Из табл. 8.3.2 следует, что степень самого большого из приведенных чисел массива составляет –3.

табл. 8.3.2

Немедленные сдвиги. С помощью команд немедленного сдвига выполня­ются операции логического или арифметического сдвига влево (вверх)/вправо (вниз) на требуемое число разрядов. В командах определено направление и раз­мер сдвига. Сдвиг происходит под действием контрольного кода в виде 8–битно­го знакового числа, который берется из команды. Регистр экспоненты SE в не­медленных сдвигах не задействован.

Примеры.

Рассмотрим случай, когда входной операнд в виде 16–разрядного двоичного кода 10110110 10100011 (0xB6A3) загружается в регистр операндов SI.

1. Логический сдвиг (LSHIFT) вправо на 5 разрядов относительно старшей половины регистра результата SR (SR1).

Команды:                  SI = 0xB6A3;

SR = LSHIFT SI BY –5 (HI);

Вход SI                      10110110 10100011

Значение сдвига       –5

Регистр SR                00000101 10110101 00011000 00000000

2. Логический сдвиг (LSHIFT) влево на 5 разрядов относительно младшей половины регистра результата  SR  (SR0).

Команды:                  SI = 0xB6A3;

SR = LSHIFT SI BY 5 (LO);

Вход SI                      10110110 10100011

Значение сдвига       +5

Регистр                      00000000 00010110 11010100 01100000

3. Арифметический сдвиг (ASHIFT) вправо на 5 разрядов относительно старшей поло­вины регистра результата  SR  (SR1).

Команды:                  SI = 0xB6A3;

SR = ASHIFT SI BY –5 (HI);

Вход SI                      10110110 10100011

Значение сдвига       –5

Регистр SR                11111101 10110101 00011000 00000000

Денормализация. Денормализация числа — это его сдвиг на заданное число разрядов, которое хранится в регистре экспоненты SE. Поэтому при денормализации контрольный код берется из регистра SE, а не из команды как при не­медленных сдвигах. Фактически денормализация преобразует число с плавающей точкой в число с фиксированной точкой.

Пример.

Покажем особенности этой операции на примере денормализации числа с двойной точ­ностью. Пусть содержимое регистра SE = –3. В этом случае необходимо выполнить в два этапа (в любой последовательности):

●     арифметический сдвиг на три разряда вправо старшей половины числа, представлен­ного в виде дополнительного кода, или логический сдвиг старшей половины беззнако­вого числа;

●     логический сдвиг на три разряда вправо младшей половины числа.

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

1 –й этап.

SR = ASHIFT SI (HI);

Первый операнд       10110110 10100011 (старшая половина)

Регистр SR                11110110 11010100 01100000 00000000

2–й этап.

SR = SR OR LSHIFT (LO);

Второй операнд        01110110 01011101 (младшая половина)

Регистр SR                11110110 11010100 01101110 11001011

Отметим, что при выполнении на втором этапе логического сдвига пропадают три млад­ших разряда второго операнда.

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

На первом этапе нормализации чисел с одинарной точностью по команде EXP определяется порядок числа, на втором по команде NORM реализуется требу­емый сдвиг. Обе команды выполняются с использованием модификаторов HI или LO, а команда NORM дополнительно распознает также модификаторы PASS и OR. При выполнении команды NORM используется содержимое регистра экспоненты SE со знаком минус (рис. 8.3.5), чтобы произвести сдвиг в нужную сторону.

Нормализация чисел с двойной точностью выполняется по приведенной схеме, однако на первом этапе старшая половина числа обработать первой. При определении порядка старшей половины числа значение порядка загружается в регистр экспоненты SE. Младшая половина числа изменит содержимое SE только в том случае, когда все биты старшей половины являются знаковыми, т.е. при SE = –15. В этом случае в регистр SE будет загружен порядок (–16...–31, табл. 8.3.1) младшей половины числа. Зафиксированное в SE значение порядка используется на втором этапе для сдвига обоих частей числа с двойной точностью. При этом порядок обработки (старшей или младшей половины числа) может быть выбран любой с помощью модификаторов HI и LO. Первая половина числа норма­лизуется без модификатора OR, вторая половина числа — с модификатором OR, чтобы получить правильный результат.

Примеры.

1. Нормализация числа 11110110 11010100, хранящегося в регистре результата AR (АЛУ), с одинарной точностью.

SE = EXP AR (HI);                          SE устанавливается –3}

SR = NORM AR (HI)                       {SR = 10110110 10100000 00000000 00000000}

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

2. Нормализации с двойной точностью числа, хранящегося в регистре результата MR1 = 11110110 11010100 (старшая половина) и MR0 = 01101110 11001011 (младшая

половина) умножителя–аккумулятора — типичный случай.

SE = EXP MR1 (HI);                        {определение порядка старшей половины числа;}

SE устанавливается –3}

SE = EXP MR0 (LO);                       {определение порядка младшей половины числа:}

SE сохраняется –3}

SR = NORM MR1 (HI)                    {нормализация старшей половины числа (SE = –3):}

{SR = 10110110 10100000 00000000 00000000}

SR = SR OR NORM MR0 (LO)      {нормализация младшей половины числа}

{(SE = –3):}

{SR = 10110110 10100000 00000000 00000000}

3. Нормализации числа с двойной точностью, хранящегося в регистре результата MR1 = 11111111 11111111 (старшая половина) и MR0 = 11110110 11010100 (младшая половина) умножителя–аккумулятора — случай, когда старшая половина числа содержит только знаковые биты.

SE = EXP MR1 (HI);                        {определение порядка старшей половины числа:}

SE устанавливается –15}

SE = EXP MR0 (LO);                       {определение порядка младшей половины числа:}

SE устанавливается –19}

SR = NORM MRl (HI)                     {нормализация старшей половины числа (SE = 19):}

{SR = 00000000 00000000 00000000 00000000}

{старшая половина сдвигается вне пределов видимости}

SR = SR OR NORM MR0 (LO)      {нормализация младшей половины числа}

{(SE = –19):}

{SR = 10110110 10100000 00000000 00000000}

4. Нормализация числа 11111010 00110010 с одинарной точностью, хранящегося в регистре результата AR (АЛУ). Случай, когда в AR произошло переполнение, т. е. флаг пе­реполнения AV = 1, при этом флаг переноса АС, фиксирующий истинный знаковый бит опе­ранда, равен 0. В рассматриваемом случае при определении порядка используется расши­ренный модификатор HIX (см. табл. 8.3.1).

SE = EXP AR (HIX);                                   SE устанавливается +1}

SR = NORM AR (HI)                       {SR = 01111101 00011001}

 

Следует отметить, что нормализация с модификатором HIX при определении порядка дает правильный результат и при AV = 0, что обусловлено тождественностью модификаторов HIX и HI для этого случая.


Рекомендуйте эту статью другим!



Общая характеристика оптоэлектронных приборов
сен 02, 2016 592

Общая характеристика оптоэлектронных приборов

Оптоэлектронными называют приборы, которые чувствительны к электромагнитному излучению в…
Обмен данными в параллельном коде
нояб 01, 2015 687

Обмен данными в параллельном коде

Прямой ввод/вывод данных. Как уже отмечалось, прямой ввод/вывод воз­можен только с…
dvig per toka 1
мая 12, 2017 140

Испытания электродвигателей переменного тока, перечень работ, периодичность

Помимо проверки состояния механических элементов и смазки, при капитальных и текущих…
Второй закон Киргоффа
дек 21, 2013 8510

Второй закон Кирхгофа. Определение и формула.

Второй закон Кирхгофа описывает алгебраическую зависимость между падениями напряжений и…
Нулевой рабочий проводник 1
фев 12, 2014 11318

Нулевой рабочий проводник

Нулевой рабочий проводник также называют нейтралью. Большинство бытовых приборов питаются…