ИЗУЧЕНИЕ ПРИНЦИПОВ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ УСТРОЙСТВ.
СТРУКТУРА АЛУ ДЛЯ СЛОЖЕНИЯ И ВЫЧИТАНИЯ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ
Цель работы: Изучение принципов построения и функционирования АЛУ для сложения и вычитания чисел с фиксированной запятой.
Введение: Обычно в АЛУ операции алгебраического сложения сводятся к арифметическому сложению кодов чисел путем применения дополнительного или обратного кодов для представления отрицательных чисел.
Алгоритм выполнения в АЛУ арифметических операций зависит от того, в каком виде хранятся в памяти ЭВМ отрицательные числа, в прямом или дополнительном коде. В последнем случае сокращается время выполнения операции за счет исключения операции преобразования получаемого в АЛУ дополнительного кода отрицательного результата в прямой код.
Работа АЛУ: При выполнении операции сложения положительные слагаемые представляются в прямом коде, а отрицательные - в дополнительном. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд или перенос в знаковый разряд при отсутствии переноса из разряда знака, то имеется переполнение разрядной сетки соответственно при отрицательной и положительной суммах. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба эти переноса, то переполнения нет и при нуле в знаковом разряде сумма положительна и представлена в прямом коде, а при 1 в знаковом разряде сумма отрицательна и представлена в дополнительном коде.
Упрощенная структурная схема АЛУ для операций сложения и вычитания n-разрядных (n-й разряд знаковый) двоичных чисел с фиксированной запятой приведена на рис.1. Предполагается, что отрицательные числа хранятся в памяти в дополнительном коде.
В состав АЛУ входят n-разрядный параллельный комбинационный сумматор См, регистр сумматора PrCм, входные регистры сумматора PrB и PrА, входной регистр АЛУ Pr1.
Из оперативной памяти по входной информационной шине Шивк в АЛУ поступают операнды: положительные числа в прямом коде, а отрицательные в дополнительном. Операнды размещаются в PrB (первое слагаемое или уменьшаемое) и Pr1 (второе слагаемое или вычитаемое); Pr1 связан с PrA цепями прямой и инверсной передачи кода. Результат операции выдается из АЛУ в оперативную память по выходной информационной шине ШИвых. Запись информации в регистры АЛУ осуществляется под управлением сигналов ПрРг1 и ПрРгВ. Слово из Рг1 в РгА передается в прямом коде под действием управляющего сигнала ПрРгАП, в инверсном коде ПрРгАИ. Сигнал ПрРгСм управляет записью результата в регистр сумматора РгСМ, а сигнал ПрИШвых передачей содержимого РгСМ в информационную шину.
Код признака результата формируется комбинационной схемой Пр, на выходы которой поступают выходные сигналы всех разрядов сумматора СМ, а также сигналы переноса из знакового разряда ПнСМ[0] и из старшего цифрового разряда ПнСМ[1].
Признак переполнения (ПР=11) формируется, если выполняется условие
(1) ПнСМ[0]/\ПнСМ[1]\/ПнСМ[0]/\ПнСМ[1]=1
Признак нулевого значения результата Пр=00 формируется если
(2) S СМ[i]=1
Признак положительного результата Пр=10 формируется при условии
(3) СМ[0](ПнСМ[0]/\ПнСМ[1]\/ПнСМ[0]/\ПнСМ[1]=1
(4) СМ[0](ПнСМ[0]/\ПнСМ[1]\/ПнСМ[0]/\ПнСМ[1]
При выполнении алгебраического сложения поступившие в АЛУ коды операндов находятся в выходных регистрах PrB и PrА сумматора. Код суммы формируется на выходе схемы См и фиксируется в регистре PrCм.
Операция алгебраического вычитания
Z=X-Y=X+(-Y)
может быть сведена к изменению знака вычитаемого Y и операции алгебраического сложения. Изменению знака соответствует следующая процедура: принятый в Pr1 код числа знака передается инверсно в PrА и при сложении осуществляется подсуммирование 1 в младший разряд сумматора.
Выполнение лабораторной работы:
1) 2 + 3 00011 + 00010 = 00101 = 5
Пр=10 -> 5 > 0
2) 9 + 8 01000 + 01001 = 10001 = -1
Пр = 11 -> переполнение
3) –2 + 3 00011 + 10010 = 00011 + 11101 = 00000 + 00001 = 00001 = 1 Пр 10 -> 1 > 0
4) –3 + 2 00010 + 11000 (О.К.) = 11110 + 00001 = 10001 (ПК) = -1
Пр = 01 -> -1 < 0
5) –3 –2 10010 (ПК) + 10011 (ПК) = 11101(ОК) + 11100(ОК) = 11001 + 00001 = 10101 (ПК) = -5
Пр = 01 -> -5 < 0
6) – 8 – 9 11001(ПК) + 11000(ПК) + 10110 (ОК) + 10111(ОК) = 01101 + 00001 = 01110 =14
Пр = 11 -> переполнение
Вывод: проведя данную лабораторную работу, я изучил принципы построения и функционирования АЛУ для сложения и вычитания чисел с фиксированной запятой.