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

UptoLike

69
15
Рг2’[n-1]:=0
16
Рг2’[n-1]:=1
Начало
РгСм:=См; Рг2’:=Л(1)Рг2
5
A
2
да
Рг1=0
Прерывание по
делению на 0
нет
РгA:=0;РгB:=0
3
См:=РгА+РгВ
да
4
Рг2=0
нет
6
да
СчЦ=0
нет
B
РгСм:=Л(1)См; РгСм[n-1]:=Рг2[0]
Рг2’:=Л(1)Рг2; СчЦ:=СчЦ-1
12
7
да
См[0]=0
нет
РгА:=Рг1
РгB:=РгСм
Рг2:=Рг2’
9
См:=РгА+РгВ
РгА:=Рг1
РгB:=РгСм
Рг2:=Рг2’
10
См:=РгА+РгВ+1
14
да
См[0]=0
нет
B
РгСм:=См; РгСм[0]:=ТгЗн1
ТгЗн2
ШИВых:=РгСм
18
Рисунок 2.21 - Алгоритм деления целых чисел
с фиксированной запятой без восстановления остатка
Конец
8
нет
См[0]=0
да
РгСм:=См
13
ШИВых:=РгСм
РгB:=РгСм
РгА:=Рг1
11
См:=РгА+РгВ
РгСм:=См
17
Рг2:=Рг2’
РгB:=Рг2;РгА:=0
См:=РгA+РгB
A
Рг1:=ШИВх; ТгЗн1:=Рг1[0]
Рг2:=ШИВх; ТгЗн2:=Рг2[0]
1
СчЦ:=n
70
Частичные остатки после выполнения сложения при
делении без восстановления остатка получаются такими
же, как и после сдвига восстановленного остатка при
делении с восстановлением остатка.
Деление без восстановления остатка всегда требует
для получения одной цифры частного сдвига частичного
остатка, а также сложения или вычитания делителя.
Рассмотрим деление чисел с фиксированной запятой
без восстановления остатка, в соответствии с алгоритмом,
представленным на рис. 2.21.
Пример - Пусть X = +19, Y = +7. Вычислить Z = X / Y,
где X, Y , Z – числа с фиксированной запятой. При делении
использовать алгоритм деления чисел с фиксированной запятой
без восстановления остатка.
Так же, как и в предыдущем примере, для
представления чисел с фиксированной запятой выделим 6
разрядов (n = 6), старший разрядзнаковый. Так как
делимое и делитель положительные, то их знаковые
разряды равны 0. Делимое X показано на рис. 2.22.а,
делитель Y показан на рис. 2.22.б.
                                                                                           Частичные остатки после выполнения сложения при
                                            Начало
                                                                                     делении без восстановления остатка получаются такими
                            Рг1:=ШИВх; ТгЗн1:=Рг1[0]
                          1 Рг2:=ШИВх; ТгЗн2:=Рг2[0]                                 же, как и после сдвига восстановленного остатка при
                            СчЦ:=n
                                                                                     делении с восстановлением остатка.
                                нет                         да                             Деление без восстановления остатка всегда требует
                                       2     Рг1=0
                  РгA:=0;РгB:=0                            Прерывание по             для получения одной цифры частного сдвига частичного
              3                                            делению на 0
                  См:=РгА+РгВ
                                                                                     остатка, а также сложения или вычитания делителя.
                                      нет
                  4   Рг2=0
                           да     5 РгСм:=См; Рг2’:=Л(1)Рг2
                                                                           B                Рассмотрим деление чисел с фиксированной запятой
                       A
                                нет                         да
                                       6 СчЦ=0                                       без восстановления остатка, в соответствии с алгоритмом,
        нет                           да             да                    нет
                  7 См[0]=0                                 8 См[0]=0                представленным на рис. 2.21.

  РгА:=Рг1       РгА:=Рг1                                           РгСм:=См
  РгB:=РгСм      РгB:=РгСм                                          РгB:=РгСм
9             10 Рг2:=Рг2’                                       11
  Рг2:=Рг2’                                                         РгА:=Рг1                 Пример - Пусть X = +19, Y = +7. Вычислить Z = X / Y,
  См:=РгА+РгВ    См:=РгА+РгВ+1                                      См:=РгА+РгВ
                                                                                     где X, Y , Z – числа с фиксированной запятой. При делении

     РгСм:=Л(1)См; РгСм[n-1]:=Рг2[0]
                                                                                     использовать алгоритм деления чисел с фиксированной запятой
                                                           РгСм:=См
12                                                    13
     Рг2’:=Л(1)Рг2; СчЦ:=СчЦ-1                             ШИВых:=РгСм               без восстановления остатка.
        нет                           да                                                   Так же, как и в предыдущем примере, для
              14 См[0]=0                                 Рг2:=Рг2’
                                                      17 РгB:=Рг2;РгА:=0             представления чисел с фиксированной запятой выделим 6
15 Рг2’[n-1]:=0           16 Рг2’[n-1]:=1                См:=РгA+РгB
                                                                                     разрядов (n = 6), старший разряд – знаковый. Так как
                                                                                 A
                      B           18
                                       РгСм:=См; РгСм[0]:=ТгЗн1⊕ТгЗн2                делимое и делитель положительные, то их знаковые
                                           ШИВых:=РгСм
                                                                                     разряды равны 0. Делимое X показано на рис. 2.22.а,
                                            Конец                                    делитель Y показан на рис. 2.22.б.
          Рисунок 2.21 - Алгоритм деления целых чисел
      с фиксированной запятой без восстановления остатка
                                              69                                                                   70