Алгоритмы и аппаратное обеспечение операции в АЛУ
1. операции над числами с фиксированной точкой.
1) алгебраическое сложение:
недостаток – задержка переноса.
Знаковый разряд учавствует в операции сложения аналогично всем остальным разрядам.
Пример:
0 0101
+
0 0110
0 1011
вычитание:
если нужно выполнить вычитание, то его заменяют сложением с инверсным кодом числа В*.
С:=А-В , А>0, В>0.
C:=А+(-В)=А+В*.
Инверсный код может быть обратным и дополнительным. Любой инверсный код положительного числа совпадает с его прямым кодом.
А=0 0101
Аобр=Адоп=0 0101
Обратный код отрицательного числа получается из его прямого кода инвертированием всех разрядов за исключением знакового.
(10101)обр=11010 -5
Дополнительный код отрицательного числа получается прибавлением 1 к его обратному коду.
(10101)обр=11011 ïВдопï=1-ïВï
Дополнительный код отрицательного числа можно получить из прямого следующим образом:
- проинвертировать все разряды, кроме знакового, к младшему разряду добавить 1(можно прибавлять при суммировании чисел как единичный перенос в младший разряд сумматора):
1 101000
1 01011
+
1 011000
- знаковый разряд оставить без изменения, все информационные разряды, начиная с младшего до первого включительно, оставить без изменения, остальные разряды проинвертировать.
1 101000
правило:
если оба складываемых числа представить в обратных(доп.) кодах, то и сумма получится в обратном (доп.) коде.
Пример:
+6 +5
0 0110 - 0 0101
(0 0110)обр=0 0110
(1 10101)обр=1 1010
0 0110
+
1 1010
0 0000
+
0 0001
при сложении в обратных кодах перенос из старшего знакового разряда замыкается на младший разряд. При сложении в дополнительных кодах этот перенос теряется.