-ми розрядний лічильник на тригерах типу D серії К155
(К155ТМ5 - 4 D-тригера)
Аналіз програми на прикладах
Y1 = 0 1001101 110100101110011011100011 = 0 4D D2E6E3
X1 = 1 1001011 110001100101110110100111 = 1 4B C65DA7
Вирівнювання порядків :
МК: РГС> РгD (01001101> 01001011) перехід на МК1
MК1: зрушуємо мантиссу Х1 вправо на 4 розр. отримуємо 000011000110010111011010 і вивів. порядок Х1 на 1 отримуємо 01001100 перехід на МК
МК: РГС> РгD (01001101> 01001100) перехід на МК1
МК1: зрушуємо мантиссу Х1 вправо на 4 розр. отримуємо 000000001100011001011101 і вивів. порядок Х1 на 1 отримуємо 1001101 перехід на МК
МК: РГС = РгD (01001101 = 01001101)
Порядки вирівняність.
Додавання мантисс:
ТгЗн1 п‚№ ТгЗн2 перехід на М3
М3: ТгЗн1 п‚№ 0 пѓћ РГВ = (00110010 111111110011100110100010); РгСм = РгА + РГВ + 1 = 01011011 110100100010000010000110;
См [0] = 0 пѓћ перехід на М1
М1: РгСм [1 п‚ё 7]: = Сч1 [1 п‚ё 7] = 1001101;
РгСм [0]: == якщо Тг3н1 = 0 те 0;
ШІВих: = РгСм = 0 1001101 110100100010000010000110 = 0 4D D22086
КІНЕЦЬ.
Y2 = 0 1001100 110100101110011011100011 = 0 4С D2E6E3
X2 = 0 1001101 110001100101110110100111 = 0 4D C65DA7
Вирівнювання порядків:
РгD> РГС пѓћ перехід на МК2
МК2: зрушуємо мантиссу Y2 вправо на 4 розр. отримуємо 000011010010111001101110; зменшуємо порядок Х2 на 1 отримуємо 1001100; РгD = РГС
Порядки вирівняність.
Додавання мантисс:
ТгЗн1 = ТгЗн2 пѓћ См = РгА + РГВ = 00000000 110100111000110000010101; перехід на М1
М1: РгСм [1 п‚ё 7]: = Сч1 [1 п‚ё 7] = 1001110;
РгСм [0]: == якщо Тг3н1 = 0 те 0;
ШІВих: = РгСм = 0 1001101 110100111000110000010101 = 0 4D D38C15;
КІНЕЦЬ.
складеному і віднімання чисел з плаваючою коми
1. Виробляється вирівнювання порядків чисел. Порядок меншою (По модулю) числа приймається рівним порядком більшого числа, а мантиса меншого числа сдві-нується вправо на число S-ічних розрядів, однакову різниці порядків чисел.
2. Виробляється додавання (віднімання) мантис, в ре-док чого виходить мантиса суми (Різниці).
3. Порядок результату приймається рівним порядком більшого числа.
4. Отримана сума (різниця) нормалізується.
Приймемо, що числа з плаваючою коми мають підстава порядку S = 16.
Перше доданок (Зменшуване) надходить на вхідний регістр Рг1, другий доданок (Від'ємник) - На вхідний регістр Рг3. Знаки доданків зберігається в тригерах зна-ков Тг3н1 і Тг3н2. Зміщені порядки доданків пере-силаются в регістри РГС і РгD. Схема СОЛО застосовується для порівняння і вирівнювання порядків доданків. Сум-матора См, його вхідні регістри РгА і РГВ і вихідний ре-гістр РгСм використовуються при додаванні (Відніманні) ман-тисс, а також при передачі мантис у процедурах вирівню-вання порядків і нормалізації результату.
Операція складання (вирахування) може бути поділя-лена на наступні етапи: 1) прийом операндів, 2) вирівню-вання порядків, 3) додавання мантис і 4) нормалізація результату.
Прийом операндів описується наступної мікропрограмою:
РгЗ: = ШІВх, РГВ: = 0, Тг3н1: = Рг3 [0]
<прийом X, установка в 0 вхідного регістра суматора для Х і фіксація знака Х в Тг3н1>;
Рг1: = ШІВих, РгА: = 0, Тг3н2: = якщо додавання то Рг1 [0] інакше <Прийом Y, установка в 0 вхід-ного регістра для Y, фіксація знака Y в ТгЗн2 при складення або протилежної знака при віднімаючи-нии>;
Вирівнювання порядків починається з їх порівняння. Ман-тиса числа з меншим порядком при вирівнюванні сдві-нується вправо на число розрядів, рівне різниці порядків. Оскільки розглядаються числа з плаваючою коми мають S = 16, зрушення здійснюється шістнадцятиричними розрядами, т. е. кожен зрушення проводиться на чотири двійкових розряду.
При порівняно порядків можливі п'ять випадків:
1) (M-число розрядів мантиси). У ка-честве результату підсумовування відразу ж може бути взято перший доданок, так як при вирівнюванні порядків всі розряди мантиси другого доданка приймають нульове значення;
2) . В якості результату підсумовування може бути взяти другу доданок;
3) . Можна приступити до підсумовування мантис;
4) Мантиса другого доданка зсувається на розрядів вправо, потім виробляється сум-мирование мантис;
5) Перед виконанням Сума-вання мантисс проводиться cдвіг на розрядів вправо мантиси першого доданка.
За порядок результату при виконанні підсумовування приймається більший з порядків операндів.
Вирівнювання порядків здійснюється наступним чином. Усунутий порядок числа Х з РгЗ передається в регістр РгD, РгСОЛО і в лічильник, з'єднаний з вихо-дом РгСОЛО. Потім в РГС передається зміщений поря-док числа Y:
РГС: = О, PD [0]: = 0, PгD [1 п‚ё 7]: = Рг3 [1 п‚ё 7];
РгСОЛО: = РГС пѓ… PгD;
Сч1: = РгСОЛО;
РГС [О]: = 0, РГС [1 п‚ё 7] = Pг [1 п‚ё 7];
Після цього починається порівняння порядків чисел Х і Y на СОЛО і зрушення мантиси числа з меншим порядком вправо,
Для того щоб врахувати випадки 1 і 2, що виникають при порівнянні порядків, і не робити зайвих зрушень ман-Тиса, перетворилася в процесі вирівнювання порядків в 0, на лічильнику циклів СчЦ фіксується граничне число зрушень, рівне кількості шістнадцятиричних цифр ман-Тиса:
СчЦ: = 6;
При виконанні зсуву на один шістнадцятковий розряд вміст СчЦ зменшується на 1. При СчЦ = 0 зрушення припиняються і в якості результату береться більший доданок.
Мікропрограма вирівнювання порядків:
МК:
якщо РГС> РгD то МК1 інакше якщо РГС = РгD то МКЗ інакше МК2;
MK1:
PгB [8 п‚ё 31]: = PгЗ [8 п‚ё 31];
РгСм: = П (4) См, РгСм [0 п‚ё 3]: = 0, Сч1: = Сч1 +1
<Зрушення вправо мантиси Х і збільшення порядку X, спочатку занесеного в РгСч1, на 1>;
Рг3 [8 п‚ё 31]: = РгСм [8 п‚ё 31]; РгD: = Сч1, СчЦ: = СчЦ - 1
<фіксація зрушеної мантиси Х і збільшеного порядку X, зменшення на 1 числа цифр мантиси X, не що вийшли за розрядну сітку>;
якщо СчЦ п‚№ 0 то МК;
РГВ: = 0, РгА: = Рг1, РгСм: = См;
ШІВих: = РгСм;
кінець
<видача Y в якості результату-випадок 2 при порівнянні порядків>;
МК2:
РгА [8 п‚ё 31]: = Рг1 [8 п‚ё 31];
РгСм: = П (4) См, РгСм [0 п‚ё 3]: = 0, Сч1: = Сч1-1
<зсув вправо мантиси Y і зменшення більшого порядку X, спочатку занесеного в Сч1, на 1. Зменшення проводиться до тих пір, поки порядок Х не зрівняється з порядком Y, після чого в якості порядку результату приймається збережений в Рг3 вихідний порядок Х>;
Рг1 [1 п‚ё 31]: = РгСм [8 п‚ё 31], РгD: = Сч1, СчЦ: = СчЦ - 1,
якщо СчЦ п‚№ 0, то МК4 інакше РгА: = 0, РГВ: = Рг3, РгСм: = См, ШІВих: = РгСм,
кінець
<видача Х в якості результату - Випадок 1 при порівняно ...