Основы арифметики цифровых процессоров. Вашкевич Н.П - 107 стр.

UptoLike

106
Следует отметить (такой случай есть в вышеприведенном примере),
что если при значении СЧТ=0 в Р2 нужно учесть дополнительную 1 от
предыдущей комбинации 11, то к РСМ прибавляется множимое без
последующего сдвига; затем делается «n сдвиг», если умножаются це-
лые операнды, а если дробныеобнуляется последний бит Р2.
4.8. Выполнение арифметических операций
в цифровых процессорах с многократной точностью
Во всех ранее рассмотренных алгоритмах арифметических и свя-
занных с ними логических операций и операций сдвига цифровой
процессор обрабатывал операнд одиночной длины, т.е. длины, рав-
ной разрядности процессора. Операция в этом случае выполняется
одной командой процессора за один такт его работы (сложение, вы-
читание, сдвиги, логические операции) или за несколько тактов (ум-
ножение, деление). Но можно выполнять обработку операндов, раз-
рядность которых кратна разрядности (двух, трех, и т.д.) процессора.
Например, сложение операндов двойной длины будет выполнено не
одной командой, а двумя, и затрачено будет на это два такта. Такую
арифметику будем называть арифметикой многократной точности.
Для поддержки такой арифметики в процессоре есть специальные
команды. Например, для сложения в процессорах фирмы Intel есть
команды ADD <регистр источник>,<регистр приемник> и ADC <ре-
гистр источник >,<регистр приемник>. Первая команда складывает
регистр источника с регистром приемником. Результат сложения за-
поминается в регистре приемнике, а значение переноса из старшего
разряда суммы запоминается во флаге CF. Вторая команда складыва-
ет регистр источника с регистром приемником и с флагом переноса.
Результат сложения запоминается в регистре приемнике, а значение
переноса из старшего разряда суммы запоминается во флаге CF. Ис-
пользуя эти две команды друг за другом можно по «цепочке» скла-
дывать операнды любой длины кратной разрядности процессора.
Рассмотрим примеры сложения и вычитания в арифметике с много-
кратной точностью. Пусть процессор, работающий в дополнительном
коде, имеет разрядность четыре и крайний левый разряд знаковый. Вы-
полнить операции Х+Y и Х –Y над восьмиразрядными операндами, у
которых крайний левый разряд знаковый. Пусть операнды Х и Y хра-
нятся соответственно в следующих регистрах процессора:
   Следует отметить (такой случай есть в вышеприведенном примере),
что если при значении СЧТ=0 в Р2 нужно учесть дополнительную 1 от
предыдущей комбинации 11, то к РСМ прибавляется множимое без
последующего сдвига; затем делается «n сдвиг», если умножаются це-
лые операнды, а если дробные – обнуляется последний бит Р2.
       4.8. Выполнение арифметических операций
   в цифровых процессорах с многократной точностью

   Во всех ранее рассмотренных алгоритмах арифметических и свя-
занных с ними логических операций и операций сдвига цифровой
процессор обрабатывал операнд одиночной длины, т.е. длины, рав-
ной разрядности процессора. Операция в этом случае выполняется
одной командой процессора за один такт его работы (сложение, вы-
читание, сдвиги, логические операции) или за несколько тактов (ум-
ножение, деление). Но можно выполнять обработку операндов, раз-
рядность которых кратна разрядности (двух, трех, и т.д.) процессора.
Например, сложение операндов двойной длины будет выполнено не
одной командой, а двумя, и затрачено будет на это два такта. Такую
арифметику будем называть арифметикой многократной точности.
Для поддержки такой арифметики в процессоре есть специальные
команды. Например, для сложения в процессорах фирмы Intel есть
команды ADD <регистр источник>,<регистр приемник> и ADC <ре-
гистр источник >,<регистр приемник>. Первая команда складывает
регистр источника с регистром приемником. Результат сложения за-
поминается в регистре приемнике, а значение переноса из старшего
разряда суммы запоминается во флаге CF. Вторая команда складыва-
ет регистр источника с регистром приемником и с флагом переноса.
Результат сложения запоминается в регистре приемнике, а значение
переноса из старшего разряда суммы запоминается во флаге CF. Ис-
пользуя эти две команды друг за другом можно по «цепочке» скла-
дывать операнды любой длины кратной разрядности процессора.
   Рассмотрим примеры сложения и вычитания в арифметике с много-
кратной точностью. Пусть процессор, работающий в дополнительном
коде, имеет разрядность четыре и крайний левый разряд знаковый. Вы-
полнить операции Х+Y и Х –Y над восьмиразрядными операндами, у
которых крайний левый разряд знаковый. Пусть операнды Х и Y хра-
нятся соответственно в следующих регистрах процессора:

                                106