Выполнение арифметических операций в АЛУ для чисел с фиксированной запятой. Часть I. Базарова С. Б-М - 14 стр.

UptoLike

27
отсутствии переноса в этот разряд или перенос в знаковый
разряд при отсутствии переноса из разряда знака, то
имеется переполнение разрядной сетки, соответственно при
отрицательной и положительной суммах. Если нет
переноса из знакового разряда и нет переноса в знаковый
разряд суммы или есть оба эти переноса, то переполнения
нет. Если в знаковом разряде содержится 0, то сумма
положительна и представлена в прямом коде, а если в
знаковом разряде содержится 1, то сумма отрицательна и
представлена в дополнительном коде.
При выполнении алгебраического сложения
(Z = X + Y) поступившие в АЛУ коды операндов находятся
на входных регистрах РгВ и РгА сумматора. Код суммы
формируется на выходах схемы См и фиксируется в
регистре РгСм.
Операция алгебраического вычитания
Z = X – Y = X + (-Y)
может быть сведена к изменению знака вычитаемого Y и
операции алгебраического сложения. Если вычитаемое Y
после изменения знака становится отрицательным
операндом, то это число необходимо перевести в
дополнительный код, что выполняется следующей
процедурой: принятый в Рг1 код числа передается
инверсно в РгА и при сложении осуществляется
подсуммирование 1 в младший разряд сумматора.
28
Передача информации в регистрах АЛУ
производится отдельными микрооперациями,
инициируемыми управляющими сигналами. Слово из Рг1 в
РгА может быть передано в прямом (при сложении) или в
инверсном (при вычитании) кодах.
Алгоритм сложения и вычитания чисел с
фиксированной точкой приведен на рис. 2.2.
Микрооперации в блоках, выполняемые в разных тактах,
разделяются горизонтальной чертой.
Рисунок 2.2 - Алгоритм сложения и вычитания
чисел с фиксированной запятой
Начало
РгВ:=ШИВх
Рг1:=ШИВх
1
См:=РгА+РгВ;Пр
РгА:=Рг1
РгСм:=См
3
2 сложение
да
нет
См:=РгА+РгВ+1;Пр
РгА:=Рг1
РгСм:=См
4
нет
5 Пр=11
да
ШИВых:=РгСм
6
РгСм:=0;
Прерыв. из-за переполн.
7
Конец
отсутствии переноса в этот разряд или перенос в знаковый                          Передача      информации              в      регистрах         АЛУ
разряд при отсутствии переноса из разряда знака, то                         производится         отдельными                    микрооперациями,
имеется переполнение разрядной сетки, соответственно при                    инициируемыми управляющими сигналами. Слово из Рг1 в
отрицательной          и    положительной        суммах.    Если      нет   РгА может быть передано в прямом (при сложении) или в
переноса из знакового разряда и нет переноса в знаковый                     инверсном (при вычитании) кодах.
разряд суммы или есть оба эти переноса, то переполнения                           Алгоритм      сложения          и     вычитания           чисел     с
нет. Если в знаковом разряде содержится 0, то сумма                         фиксированной      точкой         приведен           на      рис.       2.2.
положительна и представлена в прямом коде, а если в                         Микрооперации в блоках, выполняемые в разных тактах,
знаковом разряде содержится 1, то сумма отрицательна и                      разделяются горизонтальной чертой.
представлена в дополнительном коде.
        При       выполнении              алгебраического    сложения                       Начало

(Z = X + Y) поступившие в АЛУ коды операндов находятся                                   РгВ:=ШИВх
                                                                                     1
на входных регистрах РгВ и РгА сумматора. Код суммы                                      Рг1:=ШИВх

формируется на выходах схемы См и фиксируется в
                                                                                                        нет
                                                                                           2 сложение
регистре РгСм.
                                                                                                да
        Операция алгебраического вычитания
                                                                                       РгА:=Рг1                         РгА:=Рг1
                           Z = X – Y = X + (-Y)                                      3 См:=РгА+РгВ;Пр                 4 См:=РгА+РгВ+1;Пр
                                                                                       РгСм:=См                         РгСм:=См
может быть сведена к изменению знака вычитаемого Y и
операции алгебраического сложения. Если вычитаемое Y                                                    да
                                                                                           5 Пр=11
после    изменения           знака        становится    отрицательным
                                                                                                нет
операндом,        то   это        число    необходимо     перевести     в            6 ШИВых:=РгСм                     РгСм:=0;
                                                                                                                  7    Прерыв. из-за переполн.
дополнительный             код,     что     выполняется     следующей
                                                                                             Конец
процедурой: принятый в                    Рг1   код числа передается
инверсно      в    РгА       и     при     сложении     осуществляется                Рисунок 2.2 - Алгоритм сложения и вычитания
                                                                                             чисел с фиксированной запятой
подсуммирование 1 в младший разряд сумматора.

                                      27                                                                     28