
- •Глава 2. Формы представления и способы обработки машинных слов в мп сау.
- •2.1 Формы представления чисел в технических устройствах.
- •2.2 Точность и диапазон представления числовой информации в разрядной сетке с фиксированной запятой.
- •2.3 Представление чисел в разрядной сетке с плавающей запятой.
- •2.4 Алгоритмы обработки кодированной информации в арифметических устройствах.
- •2.4.1 Логический алгоритм формирования дополнительного кода отрицательных чисел.
- •2.5 Аксиомы, сопровождающие суммирование дополнительных кодов.
- •2.5.1 Сумматор дополнительных кодов.
- •2.5.2 Алгоритм формирования обратного кода. Арифметические и логические варианты алгоритмов.
- •2.5.3 Сумматор обратных кодов (циклический сумматор), аксиомы обработки обратных кодов.
- •2.5.4 Блок схема суммирования двоичной информации в форме с плавающей запятой
- •2.6 Выполнение длинных операций (* и /) над арифметическими кодами.
2.4 Алгоритмы обработки кодированной информации в арифметических устройствах.
Алгоритмы обработки арифметической информации используют специальные коды её представления для того, чтобы иметь на машинном уровне одно универсальное устройство для выполнения суммирования и вычитания кодов. Различают прямой и инверсные коды чисел. Прямой код служит для автоматического представления знака числа в микропроцессоре..
X, если x≥0
[X]пр=
1-x, если x≤0
Ноль в прямом коде имеет два различных представления
Для x=+0, 0…0 [x]пр=0, 0….0
Для x= - 0, 0…0 [x]пр=1, 0….0-(-0, 0….0) = 1, 0…0
Для чисел представленных в форме с фиксированной запятой прямой код автоматически задаёт знак числа.
Именно в этом коде числа и могут быть размещены в памяти микропроцессора.
2.4.1 Логический алгоритм формирования дополнительного кода отрицательных чисел.
Логический алгоритм образования дополнительного кода отрицательного числа включает следующие шаги:
в разряд знака кода ставится 1 (т.к. число отрицательное);
все разряды числовой части инвертируются (т.е. 0 заменяется 1-й; а 1 заменяется на 0);
к младшему разряду кода прибавляют 1;
Пример: Х= -0,10111100
[Х]доп.= 1 01000100
2.5 Аксиомы, сопровождающие суммирование дополнительных кодов.
Сумма дополнительных кодов двух операндов X и Y эквивалентна дополнительному коду их суммы , то-есть :[Х]доп.+[Y]доп. ≈ [X+Y]доп.
2. Если при суммировании дополнительных кодов образуется единица переноса из разряда знака, то она не участвует в формировании окончательного результата (и теряется).
[Х]доп. = Хзн Хn Xn-1…Xi…X1
+
[Y]доп. = Yзн Yn Yn-1…Yi…Y1
3. Результат суммирования получают в дополнительном коде, если он отрицательный и в прямом коде если положительный.
4. Модули операндов и результат их суммирования должны быть меньше единицы.
2.5.1 Сумматор дополнительных кодов.
На рис.2.5 представлен многоразрядный двоичный сумматор дополнительных кодов.
Sзн
Sn
Sn-1
S1
ОДСn-1
ОДС1
ОДСн
ОДСзн
ОДС1
Рзн
. . . .
. Р1
Рn-2
Xзн Yзн Xn Yn Xn-1 Yn-1 X1 Y1
Рис.2.5 Многоразрядный двоичный сумматор дополнительных кодов.
ОДС – одноразрядный двоичный сумматор;
S – сумма;
Р – перенос информации из одного ряда в другой;
│X│<
1
│Y│<
1
│S│<
1
Пример 1:
Х = + 0,10011100
Y = - 0,00110101
X+Y= 0,01100111
Проверка:
[X]доп. = 0 10011100перенос
+
[Y]доп. = 1 11001011
[X+Y]доп. = 0 01100111 = [X+Y]пр.
Пример 2:
X = - 0,01110101 [Х]доп. = 1 10001011
Y = - 0,01001010 [Y]доп. = 1 1011011
X+Y = -0,10111111 [X+Y]доп. = 1 01000001
Пример нарушения условия 4 по результату операции:
X = - 0,10101010 [X]под. = 101010110
Y = - 0,11000011 [Y]доп. = 100111101
X+Y = - 1,01101101 [X+Y]доп. = 010010011
Проверка показывает, что модуль результата > 1.
│X+Y│=│S│>1