Составители:
21
P3=S= ((S<<1)-A)>=0) ? (S<<1)-A +1 : S<<1 ;
}
В Ассемблере можно контролировать как бит признака С, так и старшие
биты операндов, что позволяет работать без знаков в полных форматах (n-
разрядный делитель и 2n-разрядное делимое) значений операндов.
Рис. 2.5. Схема деления в Ассемблере без восстановления остатка.
Признак отрицательного остатка C&неS[1], где C - заем при вычитании и
при сдвиге регистра S в старшем бите S[1] единица.
в) Извлечение квадратного корня из 16-разрядного целого.
Алгоритм извлечения для дробного двоичного числа 0.B=√0.S
0
.
Пусть i+1-ое приближенное двоичное значение корня x
i+1
= x
i
b
i+1
и b
i+1
-
младшая двоичная цифра в этом приближении , S
0
-дробное подкоренное значе-
ние не равно 0, x
0
=0-начальное -целое значение дробного корня, b
i+1
- текущая
двоичная цифра корня.
На первом шаге S
0
>=(x
0
+0.b
1
)
2
=(x
0
+0.1)
2
=x
0
2
+x
0
+0.01, x
1
=0.b
1
и b
1
=1-
старшая цифра дробного корня, если
S
1
=S
0
-0.01 >=0
Пусть b
1
=1 и S
1
>=0, тогда на втором шаге сдвинем остаток S
1
на 2 разря-
да влево и значение корня x
1
на один разряд влево – обозначим новое значение
этого остатка Q
1
.S
1
, где Q
1
-целая часть и S
1
-дробная часть и x
1
= b
1
.
Предположим x
2
= b
1
,b
2
Q
1
.S
1
>=(x
1
+ 0.b
2
)
2
= x
1
2
+x
1
+0.01 и b
2
=1, если
Q
2
.S
2
=4Q
1
.S
1
-x
1
.01=x
1
2
>=0
Пусть b
2
=1 и Q2.S
2
>=0, тогда на третьем шаге сдвинем остаток на 2 раз-
ряда влево – получим Q
3
.S
3
, где Q
3
-целая часть и S
3
-дробная часть и корень
сдвинем на один разряд влево x
2
= b
1
,b
2
и получим x
3
= b
1
b
2
,b
3
Q
3
.S
3
>=(x
2
+ 0.b
3
)
2
= x
2
2
+x
2
+0.01 и b
3
=1, если
Q
3
.S
3
=4Q
2
.S
2
-x
2
.01=x
2
2
>=0
Рекуррентные формулы для вычисления корня методом “цифра за циф-
рой” без восстановления остатка
S S/B
2S (сдвиг влево)
A
b
i
1 2n
- A
,
,
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »