К О В А Л Ь Д И
56 86 72 32 76 53 12 94
4.1 Виконати порозрядні операції над двома 16-розрядними кодами:
(1ц1л)(2ц1л)(1ц2л)(2ц2л) and (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція І,
(1ц1л)(2ц1л)(1ц2л)(2ц2л) or (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція АБО,
(1ц1л)(2ц1л)(1ц2л)(2ц2л) xor (1ц7л)(2ц7л)(1ц8л)(2ц8л) – операція ВИКЛЮЧНЕ АБО.
Синтезувати в базисі Буля функціональні схеми пристроїв, які виконують дані операції, і навести значення сигналів на входах схеми і на виходах кожного елемента схеми.
5 6 8 6 1 2 9 4
(1ц1л)(2ц1л)(1ц2л)(2ц2л) AND (1ц7л)(2ц7л)(1ц8л)(2ц8л)
(1ц1л)(2ц1л)(1ц2л)(2ц2л) OR (1ц7л)(2ц7л)(1ц8л)(2ц8л)
(1ц1л)(2ц1л)(1ц2л)(2ц2л) XOR (1ц7л)(2ц7л)(1ц8л)(2ц8л)
a = 0101 0110 1000 0110
b = 0001 0010 1001 0100
___________________
a&b = 0001 0010 1000 0100
avb = 0101 0110 1001 0110
a#b = 0100 0100 0001 0010

4.2 Виконати операцію віднімання чисел у двійковому коді:
(1ц3л)(1ц1л)(2ц1л)-(1ц8л)(2ц8л),
(1ц8л)(2ц8л)-(1ц3л)(1ц1л)(2ц1л).
Від'ємний результат подати у прямому коді. Після виконання вказаних операцій навести у шістнадцятковому коді значення операндів і результату. Синтезувати на базі повних однорозрядних суматорів функціональну схему багаторозрядного суматора, який виконує дані операції, і навести значення сигналів на входах схеми і на виходах кожного однорозрядного суматора. Синтезувати в базисі Буля функціональну схему повного однорозрядного суматора, навести його таблицю істинності і значення сигналів на входах суматора і на виходах кожного його елемента для кожного розряду згаданого вище багаторозрядного суматора.
7 5 6 9 4
(1ц3л)(1ц1л)(2ц1л) - (1ц8л)(2ц8л)
9 4 7 5 6
(1ц8л)(2ц8л) - (1ц3л)(1ц1л)(2ц1л)
a = 756 = 0111 0101 0110
a(об) = 1000 1010 1001
a(доп) = 1000 1010 1010
b = 94 = 0000 1001 0100
b(об) = 1111 0110 1011
b(доп) = 1111 0110 1100
_ _ _ _ _ _ _ _ _ _ _ _
a-b :
a(пр) = 0,0111 0101 0110
b(доп) = 1,1111 0110 1100
___________________________
(a+b)доп = 0,0110 1100 0010
(a+b)пр = 0,0110 1100 0010 = 6C2
b-a :
b(пр) = 0,0000 1001 0100
a(доп) = 1,1000 1010 1010
___________________________
(b+a)доп = 1,1001 0011 1110
(b+a)пр = 1,0110 1100 0010 = -6C2
Внутрішня схема 16 розрядного суматора на базі одно розрядних суматорів:
/
Внутрішня схема однорозрядного суматора в базисі Буля:
/
Co = /ABCi v A/BCi v AB/Ci v ABCi = BCi v ACi v AB;
S = /A/BCi v /AB/Ci v A/B/Ci v ABCi.
4.3 Виконати округлення 16-розрядних двійкових кодів із точністю до 1/2 одиниці
молодшого розряду, який залишається. Коди:
1(1ц4л)(2ц4л)(1ц5л)(2ц5л) - від'ємне число в доповняльному коді,
0(1ц4л)(2ц4л)(1ц5л)(2ц5л) - додатне число в доповняльному коді.
При першому округленні відкинути два молодших розряди. Наступні округлення провести послідовно через кожних два двійкових розряди. Результат чергового округлення – це початкові дані для наступного округлення.
3 2 7 6
0(1ц4л)(2ц4л)(1ц5л)(2ц5л)
3 2 7 6
1(1ц4л)(2ц4л)(1ц5л)(2ц5л)
3276 = 0011001001110110
Округлення додатнього числа:
1 округлення:
a = 00110010011101(10)
+ 00000000000000(10)
_____________________
00110010011110(00)
Результат 1 округлення :00110010011110(00)
2 округлення:
a = 001100100111(1000)
+ 000000000000(1000)
_____________________
001100101000(0000)
Результат 2 округлення :001100101000(0000)
3 округлення:
a = 0011001010(000000)
+ 0000000000(100000)
_____________________
0011001010(100000)
Результат 3 округлення :0011001010(000000)
4 округлення:
a = 00110010(10000000)
+ 00000000(10000000)
_____________________
00110011(00000000)
Результат 4 округлення :00110011(00000000)
5 округлення:
a = 001100(1100000000)
+ 000000(1000000000)
_____________________
001101(0100000000)
Результат 5 округлення :001101(0000000000)
6 округлення:
a = 0011(010000000000)
+ 0000(100000000000)
_____________________
0011(110000000000)
Результат 6 округлення :0011(000000000000)
7 округлення:
a = 00(11000000000000)
+ 00(10000000000000)
_____________________
01(01000000000000)
Результат 7 округлення :01(00000000000000)
Округлення вiд'ємного числа:
1 округлення:
a = 00110010011101(10)
+ 00000000000000(01)
_____________________
00110010011101(11)
Результат 1 округлення :00110010011101(00)
2 округлення:
a = 001100100111(0100)
+ 000000000000(0111)
_____________________
001100100111(1011)
Результат 2 округлення :001100100111(0000)
3 округлення:
a = 0011001001(110000)
+ 0000000000(011111)
_____________________
0011001010(001111)
Результат 3 округлення :0011001010(000000)
4 округлення:
a = 00110010(10000000)
+ 00000000(01111111)
_____________________
00110010(11111111)
Результат 4 округлення :00110010(00000000)
5 округлення:
a = 001100(1000000000)
+ 000000(0111111111)
_____________________
001100(1111111111)
Результат 5 округлення :001100(0000000000)
6 округлення:
a = 0011(000000000000)
+ 0000(011111111111)
_____________________
0011(011111111111)
Результат 6 округлення :0011(000000000000)
7 округлення:
a = 00(11000000000000)
+ 00(01111111111111)
_____________________
01(00111111111111)
Результат 7 округлення :01(00000000000000)
4.4 Виконати операцію віднімання чисел у двійково-десятковому коді (числа задані в шістнадцятковому коді):
(1ц1л)(2ц1л)-(1ц8л)(2ц8л),
(1ц8л)(2ц8л)-(1ц1л)(2ц1л).
Від'ємний результат подати у прямому двійково-десятковому коді.
5 6 9 4
(1ц1л)(2ц1л) - (1ц8л)(2ц8л)
a(дв.десятк код) = 0101 0110
b(дв.об.код) = 0110 1011
b(дв.доп.код) = 0110 1100
Двiйково - десятковий обернений та доповняльний коди:
0110 1100
+
1001 1001
_________
0000 0101
b(дв-дес.об.код) = 0000 0101
0000 0101
+
0000 0001
_________
0000 0110
b(дв-дес.об.код) = 0000 0110
Додавання доповняльних кодiв а та b
0101 0110
+
0000 0110
_________
0101 1100
1 тетрада приймає недопустиме значення, тому виникла потреба її корегувати
Корекцiя першої тетради :
0101 1100
+
0000 0110
________
0110 0010
2 тетрада приймає допустиме значення, тому немає потреби її корегувати
Переносу за межi розрядної сiтки не виникло, це свiдчить про те, що результат вiд'ємний у доповняльному кодi
Переведення:
0110 0010 <-вiд'ємний результат у доповняльному кодi
1001 1101 <-iнверсiя двiйкових розрядiв
1001 1101
+
0000 0001
_________
1001 1110 <-додавання 1 молодшого розряду
1001 1110
+
1001 1001
_________
0011 0111 <-доповнення до 9 9
0011 0111
+
0000 0001
_________
0011 1000 <-додавання 1 молодшого розряду
Результат: 0011 1000 = -38
9 4 5 6
(1ц8л)(2ц8л) - (1ц1л)(2ц1л)
b(дв.десятк код) = 1001 0100
a(дв.об.код) = 1010 1001
a(дв.доп.код) = 1010 1010
Двiйково - десятковий обернений та доповняльний коди:
1010 1010
+
1001 1001
_________
0100 0011
a(дв-дес.об.код) = 0100 0011
0100 0011
+
0000 0001
_________
0100 0100
a(дв-дес.об.код) = 0100 0100
Додавання доповняльних кодiв b та a
1001 0100
+
0100 0100
_________
1101 1000
1 тетрада приймає недопустиме значення, тому виникла потреба її корегувати
Корекцiя першої тетради :
1101 1000
+
0000 0110
________
1101 1110
2 тетрада приймає недопустиме значення, тому виникла потреба її корегувати
Корекцiя другої тетради :
1101 1000
+
0110 0000
________
00111000
Перенос за межi розрядної сiтки свiдчить про те, що результат додатнiй
0011 1000 = 38

4.5 Виконати операції множення в доповняльному коді двійкових чисел, поданих спочатку в прямому коді:
(+2ц1л) х (+2ц8л),
(-2ц1л) х (+2ц8л),
(+2ц1л) х (-2ц8л),
(-2ц1л) х (-2ц8л).
Попередньо всі числа перевести в доповняльний код. Навести алгоритм множення й таблицю, яка відображає зміни всіх операндів (множеного, множника, лічильника, проміжної суми, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму. Синтезувати на базі повних однорозрядних суматорів і з використанням елементів базиса Буля функціональну схему матричного помножувача, який виконує операцію множення додатніх чисел (+2ц1л) х (+2ц8л), і навести значення сигналів на входах схеми і на виходах кожного елемента схеми.
Алгоритм множення:


На алгоритмі множення введені такі позначеня:
Лч - лічильник;
n - кількість двійкових розрядів множника без знаку;
Мк - множник;
Ме - множене;
S - суматор, після виконання алгоритму в ньому буде знаходитися результат. Розрядність суматора без врахування знаку дорівнює n+m, де m - кількість розрядів множеного без врахування знаку (у прикладі n=m);
мол.р. - молодший розряд;
АЗП - арифметичний зсув праворуч;
ЛЗП - логічний зсув праворуч.
( +6 )*( +4 )
(+2ц1л)*(+2ц8л)
Очiкуваний результат (+6)*(+4) = +24
Me = 00.0110
-Me = 11.1010
Mk = 00.0100
Лч | S | Mk |м.р. Мк| Наступна операцiя
____|______________|________|_______|__________________
4 | |00.0100 |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0010 | |Лч = Лч - 1
____|______________|________|_______|__________________
3 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0001 | |Лч = Лч - 1
____|______________|________|_______|__________________
2 | | |1 |S := S + Me
|______________|________|_______|__________________
| 00.00000000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.01100000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->00.00110000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0000 | |Лч = Лч - 1
____|______________|________|_______|__________________
1 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00011000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0000 | |Лч = Лч - 1
____|______________|________|_______|__________________
0 |00.00011000 | | 0 |Кiнець
S =00.00011000 Результат додатнiй у прямому кодi!
S = 00011000 = 24

( -6 )*( +4 )
(-2ц1л)*(+2ц8л)
Очiкуваний результат (-6)*(+4) = -24
Me = 11.1010
-Me = 00.0110
Mk = 00.0100
Лч | S | Mk |м.р. Мк| Наступна операцiя
____|______________|________|_______|__________________
4 | |00.0100 |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0010 | |Лч = Лч - 1
____|______________|________|_______|__________________
3 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0001 | |Лч = Лч - 1
____|______________|________|_______|__________________
2 | | |1 |S := S + Me
|______________|________|_______|__________________
| 00.00000000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.10100000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->11.11010000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0000 | |Лч = Лч - 1
____|______________|________|_______|__________________
1 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->11.11101000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0000 | |Лч = Лч - 1
____|______________|________|_______|__________________
0 |11.11101000 | | 0 |Кiнець
S = 11.11101000 Результат вiдємний у доповняльному кодi!
Переведення у прямий код:
00010111<- Iнверсiя двiйкових розрядiв
00011000<- Доповнення до 1
S = -00011000 = -24

( +6 )*( -4 )
(+2ц1л)*(-2ц8л)
Очiкуваний результат (+6)*(-4) = -24
Me = 00.0110
-Me = 11.1010
Mk = 00.0100
-Mk = 11.1100
Лч | S | Mk |м.р. Мк| Наступна операцiя
____|______________|________|_______|__________________
4 | |11.1100 |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |01.1110 | |Лч = Лч - 1
____|______________|________|_______|__________________
3 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.1111 | |Лч = Лч - 1
____|______________|________|_______|__________________
2 | | |1 |S := S + Me
|______________|________|_______|__________________
| 00.00000000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.01100000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->00.00110000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0111 | |Лч = Лч - 1
____|______________|________|_______|__________________
1 | | |1 |S := S + Me
|______________|________|_______|__________________
| 00.00110000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.10010000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->00.01001000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0011 | |Лч = Лч - 1
____|______________|________|_______|__________________
0 | | |1 |S := S - Me
|______________|________|_______|__________________
| 00.01001000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.11101000 | | |Кiнець
S = 11.11101000 Результат вiдємний у доповняльному кодi!
Переведення у прямий код:
00010111<- Iнверсiя двiйкових розрядiв
00011000<- Доповнення до 1
S = -00011000 = -24

( -6 )*( -4 )
(-2ц1л)*(-2ц8л)
Очiкуваний результат (-6)*(-4) = +24
Me = 11.1010
-Me = 00.0110
Mk = 11.1100
-Mk = 00.0100
Лч | S | Mk |м.р. Мк| Наступна операцiя
____|______________|________|_______|__________________
4 | |11.1100 |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |01.1110 | |Лч = Лч - 1
____|______________|________|_______|__________________
3 | | |0 |S := АЗП(S)
|______________|________|_______|__________________
|->00.00000000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.1111 | |Лч = Лч - 1
____|______________|________|_______|__________________
2 | | |1 |S := S + Me
|______________|________|_______|__________________
| 00.00000000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.10100000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->11.11010000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0111 | |Лч = Лч - 1
____|______________|________|_______|__________________
1 | | |1 |S := S + Me
|______________|________|_______|__________________
| 11.11010000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.01110000 | | |S := АЗП(S)
|______________|________|_______|__________________
|->11.10111000 | | |Mk = ЛЗП(Mk)
|______________|________|_______|__________________
| |00.0011 | |Лч = Лч - 1
____|______________|________|_______|__________________
0 | | |1 |S := S - Me
|______________|________|_______|__________________
| 11.10111000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.00011000 | | |Кiнець
S =00.00011000 Результат додатнiй у прямому кодi!
S = 00011000 = 24
Синтез на базі повних однорозрядних суматорів і з використанням елементів базиса Буля функціональної схеми матричного помножувача, який виконує операцію множення додатніх чисел:
4.6 Виконати операцію множення в доповняльному коді методом Бута двійкових чисел, представлених спочатку в прямому коді:
(+2ц1л) х (+2ц8л),
(-2ц1л) х (+2ц8л),
(+2ц1л) х (-2ц8л),
(-2ц1л) х (-2ц8л).
Попередньо всі числа перевести в доповняльний код. Навести алгоритм множення й таблицю, яка відображає зміни всіх операндів (множеного, множника, лічильника, проміжної суми, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму.
Алгоритм множення:
/
На алгоритмі множення введені такі позначеня:
Лч - лічильник;
n - кількість двійковихрозрядів множника без знаку;
Мк - множник;
Ме -множене;
S - суматор, після виконання алгоритму в ньому буде знаходитися результат. Розрядність суматора без врахування знаку дорівнює n+m, де m - кількість розрядів множеного без врахування знаку (у прикладі n=m).
2 мол.р. - два молодших розряди;
АЗП - арифметичний зсув праворуч;
ЛЗП - логічний зсув праворуч.

( +6 )*( +4 )
(+2ц1л)*(+2ц8л)
Очiкуваний результат (+6)*(+4) = +24
Me = 00.0110
-Me = 11.1010
Mk = 00.0100
Лч | S | Mk |2м.р.Мк| Наступна операцiя
____|______________|__________|_______|__________________
5 | |00.0100(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
4 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0010(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
3 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0001(0)| 10 |S = S - Me
|______________|__________|_______|__________________
| 00.00000000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.10100000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
2 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->11.11010000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0000(1)| 01 |S = S + Me
|______________|__________|_______|__________________
| 11.11010000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.00110000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
1 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00011000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0000(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
0 | | | |Кiнець
|______________|__________|_______|__________________
S =00.00011000 Результат додатнiй у прямому кодi!
S = 00011000 = 24

( -6 )*( +4 )
(-2ц1л)*(+2ц8л)
Очiкуваний результат (-6)*(+4) = -24
Me = 11.1010
-Me = 00.0110
Mk = 00.0100
Mk = 11.1100
Лч | S | Mk |2м.р.Мк| Наступна операцiя
____|______________|__________|_______|__________________
5 | |00.0100(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
4 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0010(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
3 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0001(0)| 10 |S = S - Me
|______________|__________|_______|__________________
| 00.00000000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.01100000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
2 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00110000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0000(1)| 01 |S = S + Me
|______________|__________|_______|__________________
| 00.00110000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.11010000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
1 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->11.11101000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0000(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
0 | | | |Кiнець
|______________|__________|_______|__________________
S = 11.11101000 Результат вiдємний у доповняльному кодi!
Переведення у прямий код:
00010111<- Iнверсiя двiйкових розрядiв
00011000<- Доповнення до 1
S = -00011000 = -24

( +6 )*( -4 )
(+2ц1л)*(-2ц8л)
Очiкуваний результат (+6)*(-4) = -24
Me = 00.0110
-Me = 11.1010
Mk = 11.1100
-Mk = 00.0100
Лч | S | Mk |2м.р.Мк| Наступна операцiя
____|______________|__________|_______|__________________
5 | |11.1100(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
4 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |01.1110(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
3 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.1111(0)| 10 |S = S - Me
|______________|__________|_______|__________________
| 00.00000000 | | |
| + | | |
| 11.1010 | | |
| ___________ | | |
| 11.10100000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
2 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->11.11010000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0111(1)| 11 |Лч = Лч - 1
____|______________|__________|_______|__________________
1 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->11.11101000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0011(1)| 11 |Лч = Лч - 1
____|______________|__________|_______|__________________
0 | | | |Кiнець
|______________|__________|_______|__________________
S = 11.11101000 Результат вiдємний у доповняльному кодi!
Переведення у прямий код:
00010111<- Iнверсiя двiйкових розрядiв
00011000<- Доповнення до 1
S = -00011000 = -24

( -6 )*( -4 )
(-2ц1л)*(-2ц8л)
Очiкуваний результат (-6)*(-4) = +24
Me = 11.1010
-Me = 00.0110
Mk = 11.1100
-Mk = 00.0100
Лч | S | Mk |2м.р.Мк| Наступна операцiя
____|______________|__________|_______|__________________
5 | |11.1100(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
4 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |01.1110(0)| 00 |Лч = Лч - 1
____|______________|__________|_______|__________________
3 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00000000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.1111(0)| 10 |S = S - Me
|______________|__________|_______|__________________
| 00.00000000 | | |
| + | | |
| 00.0110 | | |
| ___________ | | |
| 00.01100000 | | |Лч = Лч - 1
|______________|__________|_______|__________________
2 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00110000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0111(1)| 11 |Лч = Лч - 1
____|______________|__________|_______|__________________
1 | | | |S = АЗП(S)
|______________|__________|_______|__________________
|->00.00011000 | | |Мк = ЛЗП(Мк)
|______________|__________|_______|__________________
| |00.0011(1)| 11 |Лч = Лч - 1
____|______________|__________|_______|__________________
0 | | | |Кiнець
|______________|__________|_______|__________________
S =00.00011000 Результат додатнiй у прямому кодi!
S = 00011000 = 24

4.7 Виконати операцію ділення 10-розрядного двійкового коду (10)(1ц2л)(1ц8л) на 5-розрядний двійковий код (1)(1ц1л) методом із відновленням залишків. Навести алгоритм ділення й таблицю, яка відображає зміни всіх операндів (діленого, дільника, лічильника, частки, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму.
(10)(1ц2л)(1ц8л) = 89
(1)(1ц1л) = 5
Алгоритм ділення:
/
В алгоритмі використані такі позначення:
Лч - лічильник;
Ч - частка;
n - кількість двійкових розрядів частки без знаку.
Дк - дільник;
Де - ділене;
Зн - знак;
# - позначення операції додавання за модулем 2;
S - суматор, на початку виконання алгоритму в ньому буде знаходитися ділене;
ЛЗЛ(Х),(Y) - логічний зсув ліворуч числа X, на звільнене місце наймолодшого розряду праворуч записується двійковий розряд Y.

(10)(1ц2л)(1ц8л) = 1010001001
(1)(1ц1л) = 10101
de = 0.1010001001
dk = 0.10101
-dk= 1.01011
Визначення n: Де - Дк = 5бiт. n = 5+1 = 6;
Лч | S | S<0? | Q | Частка |Наступна операцiя
___|______________|__________|___|_________|_________________
6 | | | 0 |0 <-|S = S - Дк
|______________|__________|___|_________|_________________
| 0.1010001001| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 1.1111101001| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s<0 | | |Q = 0
|______________|__________|___|_________|_________________
| | | 0 | |S = S + Дк
|______________|__________|___|_________|_________________
| 1.1111101001| | | |
| + | | | |
| 0.10101 | | | |
| ____________| | | |
| 0.1010001001| | | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 0 |00 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0100010010| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
5 | 1.0100010010| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.1001110010| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s>0 | | |Q = 1
| | | 1 | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 1 |001 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0011100100| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
4 | 1.0011100100| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.1001000100| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s>0 | | |Q = 1
| | | 1 | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 1 |0011 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0010001000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
3 | 1.0010001000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.0111101000| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s>0 | | |Q = 1
| | | 1 | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 1 |00111 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 0.1111010000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
2 | 0.1111010000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.0100110000| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s>0 | | |Q = 1
| | | 1 | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 1 |001111 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 0.1001100000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
1 | 0.1001100000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 1.1111000000| | | |Аналiз знаку суми
|______________|__________|___|_________|_________________
| | s<0 | | |Q = 0
|______________|__________|___|_________|_________________
| | | 0 | |S = S + Дк
|______________|__________|___|_________|_________________
| 1.1111000000| | | |
| + | | | |
| 0.10101 | | | |
| ____________| | | |
| 0.1001100000| | | |Ч = ЛЗЛ(Ч),Q
|______________|__________|___|_________|_________________
| | | 0 |0011110<-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0011000000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
0 | | | | |Кiнець
___|______________|__________|___|_________|_________________
Ч = 0011110 = 30
перший розряд треба розумiти як знаковий, тобто результат у прямому кодi дорiвнює 0.011110 (крапка вiддiляє розряд знаку вiд вагових розрядiв).
4.8 Виконати операцію ділення 10-розрядного двійкового коду (10)(1ц2л)(1ц8л) на 5-розрядний двійковий код (1)(1ц1л) методом без відновлення залишків. Навести алгоритм ділення й таблицю, яка відображає зміни всіх операндів (діленого, дільника, лічильника,
частки, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму.
(10)(1ц2л)(1ц8л) = 89
(1)(1ц1л) = 5
/
В алгоритмі використанітакі позначення:
Лч - лічильник;
Ч - частка;
n - кількість двійкових розрядів частки без знаку. Для визначення кількості двійкових розрядів частки при діленні цілого числа на ціле необхідно в прямому двійковому коді написати одне під одним ділене і дільник, вирівнявши їх за одиницею в старшому розряді. Тоді кількість розрядів цілої частини частки n буде дорівнювати різниці довжин вирівняних дільника і діленого, збільшеній на 1;
Дк - дільник;
Де - ділене;
Зн - знак;
# - позначення операції додавання за модулем 2;
S - суматор, на початку виконання алгоритму в ньому буде знаходитися ділене;
ЛЗЛ(Х),(Y) - логічний зсув ліворуч числа X, на звільнене місце наймолодшого розряду праворуч записується двійковий розряд Y.
(10)(1ц2л)(1ц8л) = 1010001001
(1)(1ц1л) = 10101
de = 0.1010001001
dk = 0.10101
-dk= 1.01011
Визначення n: Де - Дк = 5бiт. n = 5+1 = 6;
Лч | S |Зн.S#Зн.Дк| Q | Частка |Наступна операцiя
___|______________|__________|___|_________|_________________
6 | | 0#0 | 0 | 0<-|Аналiз q
|______________|__________|___|_________|_________________
| | | 0 | |S = S - Дк
|______________|__________|___|_________|_________________
| 0.1010001001| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 1.1111101001| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 1#0 | 1 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |00 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.1111010010| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
5 | | | 1 | |S = S + Дк
|______________|__________|___|_________|_________________
| 1.1111010010| | | |
| + | | | |
| 0.10101 | | | |
| ____________| | | |
| 0.1001110010| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 0#0 | 0 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |001 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0011100100| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
4 | | | 0 | |S = S - Дк
|______________|__________|___|_________|_________________
| 1.0011100100| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.1001000100| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 0#0 | 0 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |0011 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.0010001000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
3 | | | 0 | |S = S - Дк
|______________|__________|___|_________|_________________
| 1.0010001000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.0111101000| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 0#0 | 0 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |00111 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 0.1111010000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
2 | | | 0 | |S = S - Дк
|______________|__________|___|_________|_________________
| 0.1111010000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 0.0100110000| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 0#0 | 0 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |001111 <-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 0.1001100000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
1 | | | 0 | |S = S - Дк
|______________|__________|___|_________|_________________
| 0.1001100000| | | |
| + | | | |
| 1.01011 | | | |
| ____________| | | |
| 1.1111000000| | | |Q = Зн S # Зн Дк
|______________|__________|___|_________|_________________
| | 1#0 | 1 | |Ч = ЛЗЛ(Ч),/Q
|______________|__________|___|_________|_________________
| | | |0011110<-|S = ЛЗЛ(S),0
|______________|__________|___|_________|_________________
| 1.1110000000| | | |Лч = Лч - 1
___|______________|__________|___|_________|_________________
0 | | | | |Кiнець
___|______________|__________|___|_________|_________________
Ч = 0011110 = 30
перший розряд треба розумiти як знаковий, тобто результат у прямому кодi дорiвнює 0.011110 (крапка вiддiляє розряд знаку вiд вагових розрядiв).
4.9 Виконати операції додавання A+B, віднімання A-B, множення AB і ділення A/B над числами, представленими у форматі з рухомою комою. Число A складається з кодів 2ц1л і 2ц8л, число B складається з кодів 2ц2л і 2ц7л. Формат операндів і результатів повинен задовільняти вимогам табл. ТZ5.
/
А = (2ц1л) і (2ц8л) =
В = (2ц2л) і (2ц7л) =
Операція додавання А+В
Аналіз і підготовка операндів
Операнд A
Операнд B

Операнди у форматі з рухомою комою (шістнадцятковий код)



Операнди у форматі з рухомою комою (двійковий код)



Розбиті на поля операнди у форматі з рухомою комою



Знак



Характеристика



Показник порядку



Порядок



Мантиса



Величина числа



Примітка



Вирівняний порядок – порядок результату



Мантиса, яка відповідає вирівняному порядку



Визначення результату
Результат:

Знак результату


Мантиса результату визначається додаванням мантис операндів у модифікованому доповняльному коді





Мантиса результату


Показник порядку результату


Порядок результату


Величина результату


Характеристика результату


Розбитий на поля результат у форматі з рухомою комою


Результат у форматі з рухомою комою (2 код)


Результат у форматі з рухомою комою(16 код)


Примітка


Операція А-В
Аналіз і підготовка операндів
Операнд A
Операнд B

Операнди у форматі з рухомою комою (шістнадцятковий код)



Операнди у форматі з рухомою комою (двійковий код)



Розбиті на поля операнди у форматі з рухомою комою



Знак



Характеристика



Показник порядку



Порядок



Мантиса



Величина числа



Примітка



Визначення результату
Результат:

Знак результату


Мантиса результату визначається відніманням мантис операндів,





Мантиса результату


Зменшення показника порядку результату на 2 для компенсації нормалізації мантиси результату


Показник порядку результату


Порядок результату


Величина результату


Характеристика результату


Розбитий на поля результат у форматі з рухомою комою


Результату у форматі з рухомою комою (двійковий код)


Результату у форматі з рухомою комою (шістнадцятковий код)


Примітка




Операція А*В
Аналіз і підготовка операндів
Операнд A
Операнд B

Операнди у форматі з рухомою комою (шістнадцятковий код)



Операнди у форматі з рухомою комою (двійковий код)



Розбиті на поля операнди у форматі з рухомою комою



Знак



Характеристика



Показник порядку



Порядок



Мантиса



Величина числа



Примітка



Визначення результату
Результат:

Знак результату


Мантиса результату визначається перемноженням мантис операндів,








Мантиса результату


Порядок результату визначається додаванням показників порядків операндів


Зменшення показника порядку результату на 1 для компенсації нормалізації мантиси результату


Показник порядку результату


Порядок результату


Величина результату


Характеристика результату


Розбитий на поля результат у форматі з рухомою комою


Результату у форматі з рухомою комою (2 код)


Результату у форматі з рухомою комою (16 код)


Примітка


Операція А/В
Аналіз і підготовка операндів
Операнд A
Операнд B

Операнди у форматі з рухомою комою (шістнадцятковий код)



Операнди у форматі з рухомою комою (двійковий код)



Розбиті на поля операнди у форматі з рухомою комою



Знак



Характеристика



Показник порядку



Порядок



Мантиса



Величина числа



Примітка



Визначення результату
Результат:

Знак результату


Мантиса результату визначається діленням мантис операндів, результат нормалізований


Мантиса результату


Порядок результату визначається відніманням показників порядків операндів


Порядок результату


Величина результату


Характеристика результату


Розбитий на поля результат у форматі з рухомою комою


Результату у форматі з рухомою комою (двійковий код)


Результату у форматі з рухомою комою (шістнадцятковий код)


Примітка