www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Обратные коды 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 [ 93 ] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189

разных случаях пользоваться разным набором из перечисленных выше элементарных операций.

Список элементарных операций во многих случаях усложняется из-за крайних разрядов регистров. Например, сдвиг влево на один разряд, который во всех средних разрядах выполняется всегда однотипно, в самом младшем (правом) разряде регистра может выполняться либо так, что в него принимается нуль, либо так, что в нем сохраняется прежняя цифра, либо так, что в него принимается цифра, Бьщвигаемая из самого старшего (левого) разряда другого регистра, в котором тоже одновременно выполняется сдвиг, либо, наконец, так, что в крайний правый разряд вдвигается некоторая новая информация от схемы управления. При выполнении различных арифметических действий могут потребоваться в разных случаях разные варианты сдвига влево. Иногда в схеме арифметического устройства предусматриваются специальные элементарные операции, касающиеся только крайних разрядов (скажем, изменение на противоположное состояния триггера самого старшего разряда какого-либо двоичного регистра).

Вообще же вопросы о необходимом и достаточном наборе элементарных операций, об оптимальном наборе с точки зрения затрат оборудования в арифметическом устройстве и устройстве управления и с точки зрения быстродействия машины в целом и т. п. ждут еще подробных исследований и разработки.



3. Сложение, вычитание, сравнения

Полная операция сложения или вычитания, выполняемая вычислительной машиной в качестве самостоятельного законченного арифметического действия в соответствии со специальной командой центрального управления, существенно сложнее той элементарной операции суммирования, которая осуществляется сумматором. Элементарное суммирование входит лишь частью в полную операцию сложения или вычитания.

Оставляя в стороне вопросы выполнения сложения и вычитания при использовании других способов изображения чисел, мы рассмотрим здесь методы сложения и вычитания чисел, представленных позиционным способом с естественными весами разрядов и с неотрицательными цифрами, или близкими к этому (в смысле 1.3.3) способами. Речь пойдет сначала о сложении и вычитании чисел с фиксированной запятой при произвольных алгебраических знаках, затем - о сложении и вычитании чисел с плавающей запятой. Изложение будет вестись применительно к двоичной системе, хотя описываемые методы легко обобщить для любых других систем счисления; при этом в изображении мантисс чисел с плавающей запятой в последующем изложении существенна однородность системы счисления.

Попутно рассматриваются операции сравнения чисел,

3.1. Алгебраическое сложение и вычитание чисел с фиксированной запятой

3.1.1. Основной метод выполнения алгебраического сложения и вычитания в прямых кодах. Пусть имеем два двоичных числа с фиксированной запятой, Б и С, представленных позиционным способом с естественными весами разрядов и с цифрами 0,1; для определенности будем полагать, что в обоих числах запятая фиксирована перед первым (старшим) разрядом, так что вес этого разряда равен /g,



а вес младшего (m-го) разрядаравенг . Когда мы говорим, что числа представлены прямыми кодами, то тем самым предполагается (см. 1.4.1), что упомянутые m двоичных разрядов изображают абсоуг/от laquo;/о величину чжла, а кроме того, в каждом числе имеется специальный разряд алгебраического знала с допустимыми символами для него laquo;+ raquo; или laquo;- raquo;. Одно из двух имеющихся чисел является 1-м слагаемым или уменьшаемым, другое - 2-м слагаемым или вычитаемым.

Обычная методика выполнения сложения и вычитания вручную сводится к следующему:

- сравнить алгебраические знаки чисел; если знаки различны, то вместо сложения выполнять дальше вычитание, а вместо вычитания - сложение (при этом условимся, что, когда сложение преобразуется в вычитание, 1-е слагаемое считается в дальнейшем уменьшаемым, 2-е слагаемое - вычитаемым; когда вычитание преобразуется в сложение, то уменьшаемое в дальнейшем считается 1-м слагаемым, а вычитаемое - 2-м слагаемым);

- сложить абсолютные величины чисел или соответственно вычесть из большей абсолютной величины меньшую;

- приписать результату сложения алгебраический знак 1-го слагаемого, а результату вычитания- либо алгебраический знак уменьшаемого, если оно по абсолютной величине больше, чем вычитаемое, либо противоположный ему знак.

Трудности в осуществлении этой методики в вычислительной машине связаны главным образом с необходимостью выполнить сравнение абсолютных величин чисел перед вычитанием, а также с тем, что в составе арифметического устройства большей частью имеется только сумматор, но нет вычитател я*); о некоторых других усложнениях по сравнению со счетом вручную мы скажем несколько позже.

При отсутствии вычитателя вычисление разности абсолютных величин двух чисел С - 1 -61 удобно выполнять путем преобразования величины

В\ в дополнительный код.

*) Из дальнейшего как раз и видно, что строить наряду с сумматорами вычитатели, как правило, нецелесообразно.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 [ 93 ] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189