Раздел: Точные науки ИЗУЧЕНИЕ ПРИНЦИПОВ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ УСТРОЙСТВ. СТРУКТУРА АЛУ ДЛЯ СЛОЖЕНИЯ И ВЫЧИТАНИЯ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ Цель работы: Изучение принципов построения и функционирования АЛУ для сложения и вычитания чисел с фиксированной запятой. Введение: Обычно в АЛУ операции алгебраического сложения сводятся к арифметическому сложению кодов чисел путем применения дополнительного или обратного кодов для представления отрицательных чисел. Алгоритм выполнения в АЛУ арифметических операций зависит от того, в каком виде хранятся в памяти ЭВМ отрицательные числа, в прямом или дополнительном коде. В последнем случае сокращается время выполнения операции за счет исключения операции преобразования получаемого в АЛУ дополнительного кода отрицательного результата в прямой код. Работа АЛУ: При выполнении операции сложения положительные слагаемые представляются в прямом коде, а отрицательные - в дополнительном. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отсутствии переноса в этот разряд или перенос в знаковый разряд при отсутствии переноса из разряда знака, то имеется переполнение разрядной сетки соответственно при отрицательной и положительной суммах. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба эти переноса, то переполнения нет и при нуле в знаковом разряде сумма положительна и представлена в прямом коде, а при 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 -> переполнение Вывод: проведя данную лабораторную работу, я изучил принципы построения и функционирования АЛУ для сложения и вычитания чисел с фиксированной запятой. |