Таблица 1
Сложение и вычитание чисел с фиксированной точкой
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки, вырабатываемые в результате выполнения МО и комментарии |
1 | Запись исходных чисел в регистры ОА: - числа в дополнительном коде РСМ:=|х|2 Р1:=|y|2; - модули исходных чисел РСМ:=|х| Р1:=|y| | Запись модулей исходных чисел производится для организации сложения и вычитания чисел без знака, поэтому в знаковом разряде регистров устанавливаются нули |
2 | Сложение и вычитание исходных чисел в дополнительном коде: - сложение целых чисел и простых дробей РСМ:= РСМ+Р1; - вычитание целых чисел и простых дробей | Сигнал переполнения разрядной сетки сумматора определяется по формуле . При V=1 фиксируется переполнение. Единица, представляющая младший разряд имеет вес: для целых - 20, для простых дробей - 2-n |
Продолжение табл.1
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки,вырабатываемые в результате выполнения МО и комментарии |
3 | Сложение и вычитание исходных чисел без знака по модулю ( для целых по модулю 2n, для простых дробей по модулю 20): - сложение целых чисел и простых дробей РСМ:=РСМ+Р1; - вычитание целых чисел и простых дробей | Сигнал переполнения разрядной сетки определяется как в п. 2. При V=0 знак регистра сумматора определяет знак результата: - при РСМ(0)=0 результат положительный; - при РСМ(0)=1 результат отрицательный и представлен в виде дополнения до модуля (2n или 20) |
4 | Получение отрицательного результата в прямом виде: - для целых чисел и простых дробей | См. комментарий в п.2 |
Таблица 2
Сложение и вычитание чисел с плавающей точкой
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки, вырабатываемые в результате выполнения МО и комментарии |
1 | Запись исходных чисел в регистры мантисс и порядков ОА: РСМм:=[Mx]2; Р1м:=[My]2; РСМp:=[Рx]2; Р1p:=[Рy]2 | Исходные числа представлены в дополнительном коде |
2 | Вычитание порядков исходных чисел: Px - Py=k; | При Px - Py=0 выполняется сложение или вычитание мантисс без их денормализации. При Px - Py>0 производится денормализация мантиссы My. При Px-Py<0 производится денормализация мантиссы Mx |
Продолжение табл.2
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки,вырабатываемые в результате выполнения МО и комментарии |
3 | Завершение операции сложения или вычитания при Px - Py > Pmax.доп. и Px - Py < Pmin.доп. : - при Px - Py > Pmax.доп. результату операции z присваивается значение слагаемого x Mz := Mx, Pz = Px; - при Px - Py < Pmin.доп. результату операции z присваивается значение слагаемого y Mz = My, Pz = Py | При сдвиге мантиссы My или Mx вправо при выравнивании порядков она выйдет за пределы разрядной сетки, поэтому результат сложения или вычитания будет равен тому слагаемому, мантисса которого не должна сдвигаться. Для первого условия значения кодов в РСМм и РСМp не изменяются. Для второго условия после сброса регистров РСМм и РСМp в нуль выполняются операции РСМм := РСМм + Р1м ; РСМp := РСМp + Р1p |
4 | Сложение или вычитание мантисс при Px - Py = 0 Mz=Mx+My; РСМм:=РСМм+Р1м; | При V=1 возникает нарушение нормализации влево. При z0=z1 возникает нарушение нормализации вправо и вырабатывается сигнал HR=1 |
Продолжение табл. 2
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки,вырабатываемые в результате выполнения МО и комментарии |
5 | Денормализация слагаемого y. При Px-Py>0 мантисса My сдвигается вправо на k разрядов M¢y:=ARS(My,k). Для реализации k сдвигов в СчТ заносится величина k = Px - Py, СчТ:= РСМp. После каждого сдвига мантиссы My вправо Р1м := ARS(Р1м,1), из СчТ вычитается единица СчТ := CчТ - 1 | Результату сложения (вычитания) присваивается порядок первого слагаемого Pz = Px. В связи с этим после занесения в СчТ величины k порядок Px в РСМp восстанавливается путем выполнения операций: Px - Py + Py = Px, РСМp := РСМp + Р1p |
Продолжение табл. 2
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки,вырабатываемые в результате выполнения МО и комментарии |
6 | Денормализация слагаемого x. При Px-Py<0 мантисса Mx сдвигается вправо на k разрядов M¢x:=ARS(Mx,k). Для реализации k сдвигов в СчТ заносится величина k = Px - Py , CчТ : =РСМp. После каждого сдвига мантиссы Mx вправо, РСМм := ARS(РСМм,1) в СчТ прибавляется единица, т.к. величина k отрицательная, СчТ := СчТ + 1 | Результату сложения (вычитания) присваивается порядок второго слагаемого Pz = Py. В связи с этим в РСМp заносится Py путем выполнения операций: РСМp := 0; РСМp := РСМp + Р1p |
7 | Сложение или вычитание мантисс слагаемых после денормализации одной из них Mz=M¢x+M¢y; РСМм:=РСМм+Р1м; | Признаки формируются в соответствии с п.4. M¢x и M¢y - мантиссы слагаемых после их денормализации |
Продолжение табл. 2
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки,вырабатываемые в результате выполнения МО и комментарии |
8 | Нормализация мантиссы результата Mz вправо при V=1 и коррекция его порядка: Pz:=Pz+1; РСМм:=ARS(РСМ,1); РСМp:=РСМp+1 | Возможны особые случаи: - при Pz>Pmax.доп. вырабатывается сигнал переполнения порядка OV=1; - при Pz<Pmin.доп. вырабатывается сигнал антипереполнения порядка Uп=1 |
9 | Нормализация мантиссы результата Mz влево при HR=1 и коррекция его порядка: Pz:=Pz-i; РСМм := ALS(РСМм,i); РСМp := РСМp-1 | Возможны особые случаи как в п.8. Вычитание константы i из порядка результата осуществляется за i тактов: в каждом такте вычитается по единице; такты вычитания выполняются до тех пор, пока сигнал HR не станет равным нулю |
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки, вырабатываемые в результате выполнения МО и комментарии |
1 | Запись исходных чисел в регистры ОА: - числа в прямом коде (модули чисел) Р1:=|x|, Р2:=|y|; - числа в дополнительном коде Р1:=[x]2, Р2:=[y]2 | Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули |
2 | Проверка исходных чисел на нуль | В результате проверки на нуль при x=0 или y=0 вырабатывается сигнал нулевого результата |
3 | Установка регистров РС и РСМ в нуль: РС:=0; РСМ:=0 | Установка регистров РС и РСМ в нуль связана с тем, что в первом такте умножения осуществляется сложение множимого с нулем |
4 | Запись в счетчик тактов числа тактов умножения СчТ:=n |
Продолжение табл. 3
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки, вырабатываемые в результате выполнения МО и комментарии |
5 | Определение кода знака произведения и его запись в регистр произведения: - для чисел в прямом коде код знака частного определяется по формуле z0=x0 Å y0 и заносится в разряд знака регистра РСМ после выполнения тактов умножения РСМ(0):=z0 ; - для чисел в дополнительном коде код знака частичного и окончательного произведения формируется после очередного сдвига по формуле | Для чисел в дополнительном коде код знака частичного и окончательного произведений формируется автоматически после каждого арифметического сдвига вправо и корректируется при переполнении в сумматоре: при V=1 код знака РСМ(0) меняется на обратный |
Продолжение табл. 3
№ п/п | Наименование МО, условия ее выполнения и представление в операторах присваивания | Признаки, вырабатываемые в результате выполнения МО и комментарии |
6 | Сложение в сумматоре для чисел в прямом и дополнительном коде производится в каждом такте умножения, если очередная цифра множителя равна единице РСМ:=РСМ+Р1 при Р2(n)=1 | Для чисел в дополнительном коде после каждого сложения определяется сигнал переполнения в сумматоре, по которому корректируется код знака в регистре РСМ после очередного сдвига (см.п.5) |
7 | Сдвиг вправо в регистрах РС, РСМ и Р2 производится: - в каждом такте умножения после сложения в сумматоре или при наличии очередной цифры множителя, равной нулю РСМ:=ARS (РСМ,1); Р2:=RS (Р2,1); - в конце тактов умножения для целых чисел в дополнительном коде, если в Р2 был записан множитель со знаком: (n+1)-й сдвиг | Сдвиг вправо в регистрах РСМ и Р2 арифметический для чисел в дополнительном коде. После каждого сдвига значение кода знака в РСМ(0) корректируется (см. п.5). Дополнительный (n+1)-й сдвиг обеспечивает для целых чисел установку произведения в регистрах РСМ и Р2 так, чтобы в n-м разряде регистра Р2 был зафиксирован его младший разряд. Для простых дробей (n+1)-й сдвиг не производится |
Продолжение табл. 3