русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Дадавання і віднімання чисел у прямих кодах за алгоритмом 2 страница


Дата додавання: 2015-01-08; переглядів: 1187.


 

 

Рисунок 1.36 – Структурна модель віднімального

пристрою чисел у доповняльних кодах

 

Таблиця 1.5 - Визначення ознаки ППП функції

 

За цієї умови на виводах операційного суматора функції (1.85) формуються коди ( = (16 – МА), = МА ):

EN NS S(3/1) = ( + ) =

=16 – МА + 16 – МВ = 32 – (МА + МВ) =

=32 – [(-16) ¸ (-9)] = 16 ¸ 23 = 1 0 000 ¸ 1 0 111,

тобто за умови, коли ознака НПП(А – В) = 1, маємо:

NA = 1; (NB = 0); NS = 0; EN = 1; eN = 0. ( 1.92 )

За відсутності переповнення функції (1.87) (ознака НПП(А–В)=0) різниця чисел (А – В) = (-8) ¸ (-1). Отже, на виводах операційного суматора функції (1.85) у цьому випадку формуються наступні коди повної суми (рис.1.35):

EN NS S(3/1) = ( + )5 = 32 – (МА + МВ) =

= 32 – [(-8) ¸ (-1)] = 24 ¸ 31 = 1 1 000 ¸ 1 1 111,

тобто за умови, коли НПП(А – В) = 0, маємо:

NA = 1; (NB = 0); NS = 1; EN = 1; eN = 1. ( 1.93 )

Співвідношення (1.92), (1.93) являють собою повну таблицю істинності функції НПП(А – В) (табл. 1.6). Звідкіль дістанемо:

( 1.94 )

Таким чином, при відніманні чисел у доповняльних кодах ознаку переповнення ПП(А–В) функції згідно з (1.88), (1.91) потрібно фіксувати за допомогою одного із булевих виразів:

 

Таблиця 1.6 - Визначення ознаки НПП функції

 

( 1.95 )

( 1.96 )

причому:

( 1.97 )

( 1.98 )

Таким чином, із співвідношень (1.84 – 1.86), (1.96) – (1.98) випливає, що як при додаванні, так і при відніманні доповняльних кодів чисел справед-ливі такі визначення:

( 1.99 )

(1.100)

(1.101)

Розглянемо типові приклади віднімання чисел у доповняльних кодах.

Припустімо, що потрібно обчислити різницю чисел (АВ) за таких значень аргументів: А = - 011; В = - 010.

За цих умов згідно з (1.81) отримаємо:

EN NS S3S2S1 = ( + )5 =

=( 1 101 + + 0001)5 = ( 1 101 + 0 001 + 0001)5 =

= (15)5 = 0 1 111 ( NS = 1, EN = 0, eN = 0 ).

Звідки дістанемо:

;

= = ( 0 1 111)m16 = 1 111.

Розглянемо далі приклад, що ілюструє переповнення розрядної сітки пристрою при відніманні чисел у доповняльних кодах.

Припустімо, що потрібно знайти різницю чисел (А В) за значень аргументів: А = - 110; В = +111.

За цих умов двійкові коди та ознаки операції набувають значень:

EN NS S3S2S1 = ( + )5 =

=( 1 010 + + 0001)5 = ( 1 010 + 1 000 + 0001)5 =

= 19 = 1 0 011 (EN = 1, NS = 0, eN = 0 );

Отже, у цьому випадку виникає негативне переповнення розрядної сітки суматора.

Структурна схема чотирирозрядного суматора для виконання операції додавання (ADD) або віднімання (SUB) чисел у доповняльних кодах (DK) подана на рис.1.37. Функціональна схема являє собою композицію мульти-плексора MUXB і двійкового суматора. Мультиплексор у схемі використо-вується для налагоджування обчислювача на виконання операції або відповідно за сигналами керування CADD чи CSUB. За відсут-ності переповнення правильний результат формується на виводах S суматора.

 

Рисунок 1.37 – Схема операційного суматора для

додавання і віднімання чисел у доповняльних кодах

На завершення зазначимо, що для спрощення виявлення ознаки пере-повнення суматора при додаванні і відніманні чисел у доповняльних кодах може застосовуватися модифікована форма доповняльних кодів (МDК). Можливий варіант такої схеми подано на рис.1.38.

Передусім розглянемо роботу суматора з модифікованою формою доповняльного коду при додаванні додатних чисел А і В.

У цьому разі = МА і = МВ, тому МDK буде визначатися за фор-мулою (рис.1.38):

Рисунок 1.38 – Структурна схема арифметичного пристрою для

додавання і віднімання чисел у модифікованих доповняльних кодах

За умови, коли А + В ≤ +7, тобто за ознакою ППП(А+В)= 0, отримаємо:

= NS2 NS1 S(3/1) = 0 0 000 ¸ 0 0 111. (1.102)

Якщо ознака ППП(А+В)= 1, тобто коли А + В =(+8) ¸ (+14), рядок двійкових цифр на виводах SMMDK відповідає множині чисел:

= NS2 NS1 S(3/1) = 0 1 000 ¸ 0 1 110 (8÷14). (1.103)

У разі додавання від’ємних чисел на входах SMMDK згідно з визначенням MDK формуються коди: ( )М = 32 – МА і ( )М = 32 – МВ (рис.1.38). На виводах SMMDK повна сума при цьому формується за співвідношенням:

(1.104)

Отже, у випадку коли ознака НПП(А+В) = 0, тобто за умови коли (-1)≥(А + В) ≥ (-8), на виводах SMMDK формується двійковий код (рис.1.38):

= 32 – (МА + МВ) = 31 ¸ 24 = 1 1 111 ¸ 1 1 000. (1.105)

За наявності ознаки НПП(А+В) =1, тобто за умови, коли -16 ≤(А + В) ≥ -9, справедливі такі визначення:

= 32 – (МА + МВ) = 16 ¸ 23 = 1 0 000 ¸ 1 0 111. (1.106)

Віднімання чисел (А - В) у SMMDK виконується звичайним способом обробки доповняльних кодів з урахуванням п’ятирозрядного формату суматора ( рис.1.38):

.

Очевидно, що результат операції може бути як позитивним, так і негативним у залежності від знаків чисел.

Якщо різниця чисел (А-В) додатна і формує множину чисел (+0) ¸ (+7), то ознака ППП(А+В)=0 і двійкові коди на виводах SM MDK визначаються формулою (1.102) (NS2=NS1=00). У випадку, коли додатна різниця формує множину чисел (МА + МВ) = (+8) ¸ (+14), очевидно, результат на виводах суматора MDK буде визначатися формулою (1.103) і перевищує довжину розрядної сітки суматора.

З цих міркувань випливає, що як при додаванні, так і при відніманні чисел виявлення ознаки позитивного переповнення розрядної сітки резуль-тату потрібно виконувати за еквівалентною формулою:

. (1.107)

Якщо різниця чисел (А - В) від’ємна і формує множину чисел (-8) ¸ (-1), то ознака НПП(А-В) = 0 і двійкові коди на виводах SMMDK визначаються фор-мулою (1.104). У випадку, коли від’ємна різниця формує множину чисел [- (МА + МВ)] = (-9) ¸ (-16), то, очевидно, результат на виходах SMMDK визначається формулою (1.105) і перевищує область визначення функції , тобто у цьому разі необхідно створювати ознаку НПП(А-В) = 1.

Таким чином, як при додаванні, так і при відніманні чисел виявлення ознаки негативного переповнення виразу потрібно оцінювати за формулою:

. (1.108)

Із співвідношень (1.107) і (1.108) випливає, що у загальному випадку переповнення розрядної сітки доповняльного коду результату повинно мати активне значення за умови (рис.1.38) :

(1.109)

де ППDK – ознака переповнення розрядної сітки регістру доповняльного коду результату.

 

1.4 Теоретичні засади та структура арифметичних пристроїв
для додавання і віднімання чисел у обернених кодах

Для ілюстрації основних функціональних особливостей лічби суми і різниці чисел у обернених кодах розглянемо роботу чотирирозрядного пристрою.

У такому пристрої машинні зображення операндів, наприклад А і В, у обернених кодах згідно з (1.10) визначаються виразами:

(1.110)

де А = ±МА; В = ±МВ; МА, МВ – відповідно модулі чисел А і В, які обмежені проміжком числової осі між (-7) і (+7);

- відповідно обернені коди операндів А і В за чотири- розрядним форматом.

Побудуємо схеми для обчислення суми чисел ( А+В) із використан-ням обернених кодів операндів і .

Обернений код суми чисел (А + В) за чотирирозрядним форматом визначимо за загальним правилом (1.110):

(1.111)

де (А + В) – сума аргументів функцій і .

У зв’язку з тим, що (15)m15 = 0, функцію (1.111) можна подати у такому вигляді:

. (1.112)

Таким чином, для обчислення необхідно виконати дві мікрооперації:

EN NS S3S2S1 = ( + );

=[ EN NS S3S2S1] m15 ;

де EN NS S3S2S1 – повна п’ятирозрядна сума чотирирозрядних обернених кодів і ;

EN NS - відповідно вихідне перенесення і стан знакового розряду суми ( + );

S3S2S1 – рядок цифрових розрядів суми обернених кодів і .

Очевидно, що

NS S3S2S1, якщо EN = 0, цих міркувань випливає, що акового розряду суми (, тобто ( + )≤1510;

EN NS S3S2S1 – 1510 = EN NS S3S2S1 – 1610+1 =

= EN NS S3S2S1 – 10000 + 0001 =

= NS S3S2S1+0001, якщо EN = 1, тобто

( + ) ≥ 1610.

З цих міркувань випливає, що

NS S3S2S1, якщо EN = 0;

( А+В) =

NS S3S2S1 + 0001, якщо EN = 1.

Узагальнюючи, маємо:

EN NS S3S2S1 = ( + ); (1.113)

= NS S3S2S1+ 000 EN . (1.114)

Схемну реалізацію співвідношень (1.113) і (1.114) подано на рис.1.39. На суматорах першого рівня в схемі формується повна сума EN NS S3S2S1 обернених кодів і . Для реалізації співвідношення (1.114) застосову-ється інкрементування проміжного коду NS S3S2S1 вихідним перенесенням EN суматора першого рівня.

Очевидно, що за допустимих значень аргументів А і В функцій і сума чисел (А+В) може перевищувати гранично-допустиме значення аргумента функції , яка обмежена проміжком числової осі між (-7) і (+7).

Передусім зазначимо, що за допустимих додатних значень оригіналів А і В їх сума (А + В) може визначатися проміжком числової осі між (+8) і (+14), тобто може перевищувати область визначення функції для пози-тивних значень аргументу (А + В). За цих умов згідно з алгоритмом (1.112) потрібно формувати ознаку переповнення (ПП(А+В)) і сигнал позитивного переповнення (ППП(А+В)) розрядної сітки суматора.

Негативне переповнення суматора (ознака НПП(А+В)=1) виникає за допустимих від’ємних значень аргументів А і В функцій і , які фор-мують множину чисел від (-14) до (-8). За цих умов згідно з алгоритмом (1.112) потрібно сумісно формувати ознаку переповнення (ПП(А+В)) і від’ємну ознаку негативного переповнення (НПП(А+В)) суматора обернених кодів.

Для виявлення змінних суматора (1.112), які визначають переповнення розрядної сітки суматора обернених кодів за алгоритмом (1.112), розглянемо роботу суматора обернених кодів ( + )m15, тобто суматора за модулем 15, за умови, коли сума чисел (А + В) утворює позитивне або негативне переповнення суматора оберненого коду (рис.1.39).

У разі позитивного переповнення (ознака ППП(А+В) = 1) при додаванні чисел у обернених кодах операнди і являють собою зображення виключно додатних чисел, тобто в цьому разі маємо: А = +МА, В = +МВ. Тому у цьому випадку згідно з (1.110) і набувають вигляду:

.

 

Рисунок 1.39 – Структурна схема суматора

для додавання чисел у обернених кодах:

NS S3S2S1 = ( + )m16;

NS i I3I2I1 = NS S3S2S1 + EN = ( + )m15;

EN - вихідне перенесення повної суми обернених кодів і .

За цих умов повна п’ятирозрядна сума обернених кодів (рис.1.39) має значення:

EN NS S3S2S1 = + = (МА + МВ)5.

За умови позитивного переповнення суматора, коли А+В = (+8)¸(+14) (рис.1.39), дістанемо:

EN NS S3S2S1 = (МА + МВ)5 =

= [(8) ¸ (14)] = 0 1 000 ¸ 0 1 110.

Таким чином, за умови позитивного переповнення суматора ( + ) цифри на виводах суматора знакових розрядів NA i NB (рис.1.39) створюють наступну комбінацію булевих змінних:


<== попередня лекція | наступна лекція ==>
Дадавання і віднімання чисел у прямих кодах за алгоритмом 1 страница | Дадавання і віднімання чисел у прямих кодах за алгоритмом 3 страница


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн