Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лапко.doc
Скачиваний:
11
Добавлен:
23.08.2019
Размер:
9.41 Mб
Скачать

4. Реалізація операції множення

4.1. Початкові дані

  • Тип арифметичної операції— множення двійкових чисел;

  • початковий код подання операндів — прямий;

  • розрядність — 8 біт;

  • код виконання мікрооперації у суматорі — доповняльний;

  • структура операційного блока — із закріпленими мікроопераціями;

  • тип керуючого блока — автомат Мілі з пам'яттю на RS-тригерах.

Елементна база, перелік обов'язкового графічного матеріалу та необхідні роз­рахунки — згідно з пунктом 1.2.

4.2. Алгоритм множення двійкових чисел із зсувом суми часткових добутків вправо

Множення двійкових чисел А і В зводиться до обчислення добутку їх модулів та присвоєння йому знака. Добуток двох n-розрядних операндів містить 2n-1 цифрових розрядів і один знаковий. Якщо перемножуються цілі числа, кома розміщується після молодшого розряду, а якщо дроби — перед старшим розрядом.

  1. Множене і множник у прямих кодах послідовно записуються відповідно в ре­гістри А і В. Регістри С і D обнуляються. У лічильник СТ записується кількість циклів.

  2. Для розрядів множника 1, 2, .... п-1 виконуються такі дії:

  • якщо молодша цифра множника B[1]=1, то до суми часткових добутків до­дається модуль множеного, інакше — не додається;

  • далі для обох випадків зміст регістрів С і В зсувається вправо на один роз­ряд, причому молодший розряд регістра С передається в старший розряд регістра B. Після кожного зсуву в молодший розряд регістра B поступає наступний розряд множеного, за яким визначається черговий частковий добуток (нуль або множене);

  • після п-1 циклів виконується додатковий зсув вправо для передачі в тригер Т знака множника і визначається знак добутку додавання за модулем два знаків множеного і множника.

3. Результат подається конкатенацією чисел С і В; при цьому в регістрі С розміщуються старші розряди добутку, а в регістрі В – молодші розряди.

4.3. Функціональна схема алп для операції множення

Функціональна схема АЛП для множення цілих двійкових чисел із зсувом вправо часткових добутків містить (рис.16):

  • регістри А і В для приймання з вхідної шини Ш1 відповідно множеного та множника;

  • паралельний комбінаційний суматор SM ;

Рисунок 16 – Функціональна схема АЛП для множення

  • регістр С для приймання часткової суми із SM при одиничному значенні синхросигналу;

  • регістр D для приймання і тимчасового зберігання часткової суми з регістра С при спаданні синхросигналу;

  • лічильник циклів СТ;

  • тригер Т1 для керування ключами SW1, SW2;

  • тригер Т2 для записування знака множника.

Регістри С і В забезпечують зсув вправо чисел, при цьому значення молодшого розряду регістра С[1] пересилається в старший розряд регістра В[n].

4.4. Мікропрограма множення цілих чисел

Початок. Якщо К[3], то М1, інакше – чекати

М1 у1: RGA := A; T1.T2 := 0.0 < приймання множеного та обнуління тригерів Т1, Т2 >

у2: RGB := B; T2 := B[n] < приймання множника та дублювання його знака в тригері Т2>

у3: RGC.RGD := 0.0 < обнулення регістрів>

у4: СT := n -1 < запис кількості циклів>

М2 Якщо , то М3

у5: SM := | A| + D < додавання>

у6: RGC :=SM < пересилання часткової суми>

М3 у7: RGC.RGD := R (C.B) < однорозрядний зсув вправо>

у8: СT := СT -1 < декремент лічильника>

Якщо СT ≠ 0, то М2, інакше

у7: RGC.RGD := R (C.B)

у9: RGC := L(C) < однорозрядний зсув вліво >

у10: RGC := Т2.R(C) <запис знака результату в регістр RGC>

Кінець.

Змістовний і закодований графи мікропрограми множення показано на рис.17.

Рисунок 17 – Змістовний і закодований графи мікропрограми множення