Функциональная схема АЛУ для сложения и вычитания чисел с фиксированной запятой
При выполнении сложения положительные слагаемые представляются в прямом коде, отрицательные – в дополнительном. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отстуствии переноса в этот разряд или перенос в знаковый разряд при отсутствии переноса из разряда знака, то имеется переполнение разрядной сетки соответственно при отрицательной и положительной суммах. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба этих переноса, то переполнения нет и при 0 в знаковом разряде сумма положительна, а при 1 отрицательна и представленя в ДК.
Алгоритм работы:
1) Из памяти по входной информационной шине в АЛУ поступают операнды, причем положительные числа – в прямом, а отрицательные – в дополнительном коде.
2) РгВ – первое слагаемое или уменьшаемое
3) РгА – второе слагаемое или вычитаемое. Рг1 связан с РгА цепями прямой и инверсной передачи кода. Прямая передача используется при сложении, инверсная - вычитания
4) Результат операции выдается из АЛУ в оперативную память по выходной информационной шине ШИВых. 5)При выполнении операции в АЛУ формируется 2-разрядный код признака результата ПР.
Алгоритмы выполнения в АЛУ арифметических операций зависят от того, в каком виде хранятся в памяти ЭВМ отрицательные числа - в прямом или дополнительном. В последнем случае сокращается время выполнения операции за счёт исключения преобразования получаемого в АЛУ дополнительного кода отрицательного результата в прямой код, при этом несколько усложняется операция умножения.
Алгоритм сложения двоичных чисел с фиксированной запятой, при использовании дополнительного кода для представления отрицательных чисел, заключается в следующем. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд, или возникает перенос в знаковый разряд при отсутствии переноса из разряда знака, то происходит переполнение разрядной сетки. Такой результат получается как при отрицательной, так и положительной суммах. Если нет переносов из знакового и в знаковый разряд суммы или есть оба эти переноса, то переполнения нет. Если получен 0 в знаковом разряде, то сумма положительна и представлена в прямом коде. Если получена 1 в знаковом разряде, то сумма отрицательна и представлена в дополнительном коде.
Достарыңызбен бөлісу: |