Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов / 2008-03-21-01-47-Елена- лекций по ТА.doc
Скачиваний:
61
Добавлен:
01.05.2014
Размер:
1.09 Mб
Скачать

Умножение двоичных чисел с фиксированной запятой на дсдк, схема 4

Схема Горнера в этом случае имеет вид:

[C]д = [A]д (b12-1+b22-2+…+bn2-n-1)=( [A]д *2-n) (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=[A ]д* (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=bn[A’]д + 2(bn-1[A’]д + … + 2(b1[A’]д + 2(SgB [A’]д + 0))…)

(10)

Пример.Пусть А=-0.1101, В= - 0.1011. Процесс вычислений приведен в таблице 7.

Таблица 7 Умножение двоичных чисел с фиксированной запятой на ДСДК, схема 4

СМ

РгВ

СТ

Комментарии

0.0000 0000

+0.0000 1101

0.0000 1101

1.0101

4

СМ:=0, РгА:=[A’]д , РгВ:=[B]д, СТ:=4,

SgB=1? ДА

Коррекция: СМ:=СМ+РгА,

0.0001 1010

0101 1.

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг),

0.0011 0100

101 1.0

3

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.0011 0100

+1.1111 0011

0.0010 0111

РгВ[0]=1 ДА

СМ:=СМ+РгА,

0.0100 1110

01 1.01

2

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.1001 1100

+1.1111 0011

0.1000 1111

1 1.010

1

РгВ[0]=1 ДА

СМ:=СМ+РгА,

0

СТ:=СТ-1,

СТ=0? ДА Выход из цикла. Результат умножения на сумматоре, С=0.1000 1111.

Умножение двоичных чисел с фиксированной запятой на дсок, схема 4

Схема Горнера в этом случае имеет вид:

[C]о = [A]о (b12-1+b22-2+…+bn2-n-SgB +SgB 2-n)=

( [A]o *2-n) (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

=[A ]o* (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

= SgB [A’]o +bn[A’]o+2(bn-1[A’]o+…+2(b1[A’]o+ 2(SgB([ A ]o +0))…).

(11)

Пример Примем А=-0.1101, В=-0.1011. Тогда [A’]o=1.1111 0010, [B]o=1.0100. Микрооперации, выполняемые при умножении, представлены в таблице 8.

Таблица 8 Умножения двоичных чисел с фиксированной запятой на ДСОК, схема 4

СМ

РгВ

СТ

Комментарии

0.0000 0000

+0.0000 1101

0.0000 1101

1.0100

4

СМ:=0, РгА:=[A’]o, РгВ:=[B]o, СТ:=4,

РгB[0]=1? ДА

Первая коррекция: СМ:=СМ+РгА,

0.0001 1010

0100 1.

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг),

0.0011 0100

100 1.0

3

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.0011 0100

+1.1111 0010

0.0010 0111

РгВ[0]=1 ДА

СМ:=СМ+РгА,

0.0100 1110

00 1.01

2

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.1001 1100

0 1.010

1

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ:=СТ-1,

1.0100

0

СТ=0? ДА

РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг),

0.1001 1100

+1.1111 0010

0.1000 1111

РгB[0]=1? ДА

Вторая коррекция: СМ:=СМ+РгА’,

В сумматоре получен результат умножения: С=0.1000 1111.

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