МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КІРОВОГРАДСЬКИЙ МАШИНОБУДІВНИЙ КОЛЕДЖ
КІРОВОГРАДСЬКОГО НАЦІОНАЛЬНОГО ТЕХНІЧНОГО УНІВЕРСИТЕТУ
Погоджено Затверджую
заст.директора
з навчальної роботи
К.П.Рябий
МЕТОДИЧНІ ВКАЗІВКИ ДО ЛАБОРАТОРНИХ РОБІТ
Предмет: Програмування на мові Асемблера-80
Спеціальність: 5.091504 “Обслуговування комп’ютерних
систем та мереж”
Курс III Семестр 6
Програму розробив викладач Т.О. Тининика
Розглянуто та схвалено на засідання предметної комісії Обслуговування комп’ютерних систем та мереж
Протокол № від 2009р.
Голова комісії Ю.В. Шевченко
м. Кіровоград, 2009р.
ПЛАН ЛАБОРАТОРНИХ РОБІТ
Лабораторна робота № 1
Тема: Монітори мікро ЕОМ.
Лабораторна робота № 2
Тема: Системи числення.
Лабораторна робота № 3
Тема: Двійкова арифметика.
Лабораторна робота № 4
Тема: Літерно-цифрове кодування.
Лабораторна робота № 5
Тема: Аналіз станів регістру. Методи адресації.
Лабораторна робота № 6
Тема: Команди передачі даних МП КР580ВМ80.
Лабораторна робота № 7
Тема: Команди арифметичних операцій МП КР580ВМ80.
Лабораторна робота № 8
Тема: Команди логічних операцій МП КР580ВМ80.
Лабораторна робота № 9
Тема: Програми з розгалуженнями.
Лабораторна робота № 10
Тема: Робота з масивами. Індексація.
Лабораторна робота № 11
Тема: Операції над елементами масиву.
Лабораторна робота № 12
Тема: Робота з циклами та підпрограмами.
Лабораторна робота № 13
Тема: Робота з розрядами.
Лабораторна робота № 14
Тема: Програмування за допомогою макро.
Лабораторна робота № 1
Тема: Монітори мікро ЕОМ.
Мета: Знайомство з середовищем навчального мікропроцесорного комплекту. Навчитися компілювати та складати програму.
Завдання:
Набрати на УМК об’єктний код запропонованої програми. Запустити її і перевірити результат.
Скласти алгоритм та написати програму для обчислення виразу 2*N + N/2 + N, де N – номер варіанту в журналі.
Обладнання та матеріали: ПК, навчальний мікропроцесорний комплект асемблера VASM-2, методичні вказівки до лабораторних робіт.
Теоретичні відомості
Курс «Програмування на мові ASM-80» побудовано на основі навчального мікропроцесорного комплекту (УМК), що має МП на одному кристалі КР580ВМ80 і є МП 2-го покоління (зарубіжний аналог Intel 8080). Його розрядність становить 8біт (1байт).
Асемблер або компілятор може працювати не обов’язково на тій ЕОМ, на якій він генерує об’єктну програму. Асемблер, що працює на ЕОМ того ж типу, на якій буде виконуватися програма, називається власним асемблером або резидентним асемблером. Асемблер, що працює на іншій ЕОМ, називається крос-асемблером.
Монітор - резидентна керуюча програма діалогового взаємовідношення оператора з мікро - ЕОМ, яка виконує наступні основні функції:
керування роботою програмного каналу обміну з периферійними пристроями (клавіатура, дисплей, принтер);
створення різних режимів роботи мікро - ЕОМ і керування ними;
приймання різних команд оператора та їх інтерпретація процесором;
завантаження абсолютних програм і керування ходом їх виконання.
Монітори мають також функції відлагодження:
індикація змісту пам’яті та змісту регістрів ЦП;
модифікація змісту пам’яті та змісту регістрів ЦП;
виконання програми з вказаної адреси;
припинення виконання програми, якщо досягнуто вказану адресу, виконання вказаної команди, умови;
покомандне трасування (кроковий режим);
трасування групи команд.
Навчальний мікропроцесорний комплект (УМК)
В постійну пам’ять УМК занесено програму монітор, яка займає 1кВ і має адреси 0…3FFH. Ще 1кВ постійної пам’яті, що має адреси 400Н…7FFH, зарезервовано за користувачем. Оперативна пам’ять використовується для зберігання програм і даних, що змінюються. Оперативна пам’ять займає адреси з 800Н до BFFH та має ємність 1кВ. Остані 54 комірки оперативної пам’яті займає стек.
Пульт оператора складається з клавіатури, 6-розрядного дисплею, світлової індикації, керуючих кнопок: “СБ”- скид, “ПР”- переривання, “ШГ”- крок і перемикачів: “РБ/ШГ” - робота-крок; “КМ/ЦК” – команда-цикл.
Клавіатура складається з 24 клавіш, з них 8 – директивні, а 16 – інформаційні.
Директивні:
“П” – читання і зміна змісту пам’яті;
“РГ” - читання і зміна змісту регістрів;
“СТ” – передача керування програмі користувача;
“КС” – визначення контрольної суми масиву пам’яті;
“ЗК” – заповнення масиву пам’яті константою;
“ПМ” – переміщення масиву пам’яті в адресному просторі;
“ ” – використовується для розділення кількох змінних при введенні;
“ВП” – виконати, кінець директиви.
Інформаційні клавіші використовують для введення чисел в 16 – му коді. Клавіші від А до F використовують для ідентифікації регістрів. При помилках в роботі з клавіатурою виникає знак питання “?”
Порядок вмикання:
Кнопка “~” в відтиснутому стані.
Підключити до мережі змінного струму.
Перемикач “РБ/ШГ” в положенні робота (відтиснутий стан).
Ввімкнути УМК, натиснувши кнопку “~”.
Натиснути кнопку “СБ”, після чого в крайній лівій позиції з’явиться “-”, як запрошення до роботи.
Індикація і зміна змісту пам’яті
“П” X1X2X3X4 D1D2 D3D4 “ВП”
адреса дані
Індикація і зміна змісту регістрів
“РГ” А … “ВП”
В
С
D
E
H
L
F
SL
SH
PL
PH
Передача керування програмі користувача
“СТ” Адреса1 Адреса2 Адреса3 “ВП”
Адреса1 – початкова адреса програми, Адреса2 і Адреса3 – адреси виконання переривання програми.
Визначення контрольної суми масиву пам’яті
“КС” Адреса1 Адреса2 “ВП”
Заповнення масиву пам’яті константою
“ЗК” Адреса1 Адреса2 D “ВП”,
де D – байт даних, що заносяться в пам’ять.
Переміщення масиву пам’яті в адресному просторі
“ПМ” Адреса1 Адреса2 Адреса3 “ВП”,
Адреса3 не повинна бути в межах адрес 1 та 2.
Приклад: ( 2 * ( 56 – 2 * 18 ) – 19 ) / 2
Блок – схема Програма
Контрольні питання:
Скільки байт має УМК?
Скільки байт займає постійна пам’ять?
Скільки байт займає оперативна пам’ять?
З якої адреси користувач може писати програми?
За допомогою якої директиви програму записують в УМК?
За допомогою якої директиви програму запускають на виконання?
За допомогою якої директиви можна переглянути вміст регістрів процесора?
Література:
Левенталь Л., Сєйвилл У. Программирование на языке ассемблердля микропроцессоров 8080 и 8085: Пер. С англ.. – М.: Радио и свіязь, 1987. – 448 с.: ил., стор. 11-23.
Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. с англ., под. ред. В.Н. Грасевича. М.: Энергоатомизадат, 1988. – 336 с.: ил., стор. 7-11.
Погорелый С.Д., Слободянюк Т.Ф. Програмное обеспечеие микропроцессорных систем : Справочник . - 2-е изд., перераб и доп. – К.: Техника, 1989. – 301 с., стор. 4-6
Вострикова З.П. Программирование на языке асемблера ЕС ЭВМ. – М.: Наука. Главная редакция фізико-математической литературы, 1985. – 304 с., стор. 8-13
Лабораторна робота № 2
Тема: Системи числення.
Мета: Розглянути відомі системи числення для роботи з ЕОМ. Навчитись переводити числа з однієї системи в іншу.
Завдання: З числами, які задає викладач, виконати наступні операції:
1) за методом додавання заміщених величин перевести числа з однієї системичислення в іншу:
а) з двійкової у десяткову;
б) з шістнадцяткової у десяткову;
в) з вісімкової у десяткову.
2) за методом ділення цілих чисел на основу перевести числа:
а) з десяткової у двійкову;
б) з десяткової у вісімкову;
в) з десяткової у шістнадцяткову.
3) використовуючи метод ділення цілих чисел на основу та метод множення дробуна основу перевести числа:
а) з десяткової у двійкову;
б) з десяткової у вісімкову;
в) з десяткової у шістнадцяткову.
4) перевести двійкове число у шістнадцяткову та вісімкову системи числення та узворотньому напрямку.
Обладнання та матеріали: ПК, навчальний мікропроцесорний комплект асемблера VASM-2, методичні вказівки до лабораторних робіт.
Теоретичні відомості
В ЕОМ для внутрішнього зображення чисел використовується замість звичайної десяткової системи числення двійкова система (в якій використовуються лише дві цифри: 0 і 1). Двійкова система є позиційною системою числення. Тобто в ній значення кожної цифри числа залежить від положення (позиції) цієї цифри в записі числа.
Кожній з позицій присвоюється визначена вага. Так, число 456 можна записати у вигляді:
4*102+5*101+6*100=456(10) де цифри мають вагу 10і .
Тут і надалі основа системи числення вказана у вигляді числа, взятого в круглі дужки.
Оскільки найбільш легким зображенням двійкових величин є вісімкова та шістнадцяткова системи, ЕОМ використовує шістнадцяткову систему для зображення двійковозакодованих програм та даних.
Таблиця 1
10 - D
2 - B
8 - Q
16 - H
2/10 – B/D
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000 0000
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
0000 0111
0000 1000
0000 1001
0001 0000
0001 0001
0001 0010
0001 0011
0001 0100
0001 0101
Існують спеціальні терміни, які широко використовуються в обчислювальній техніці: біт, байт, слово.
Двійковий розряд називають бітом, таким чином, число 1011001 являється 7-бітовим двійковим числом. Крайній зліва біт числа називається старшим розрядом (він має найбільшу вагу). Двійкове число, яке складається із 16 біт, зображено на рисі.
Рис.1.1 – Біт, байт, слово
Для зменшення трудомісткості ручної обробки кодів чисел та команд використовують вісімкову і шістнадцяткову системи числення. У вісімковій системі числення використовується 8 цифр (0,1,2,3,4,5,6,7), в шістнадцятковій - 10 цифр і 6 великих латинських букв (0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F).
Системи числення та їхні перетворення
Одне й те саме число можна записати по-різному у різних системах числення. У цифровій техніці широко використовують такі системи числення: двійкову, вісімкову, десяткову, шістнадцяткову. Будь-яка система числення має певний набір цифр і правил їхнього записування. Загальну кількість усіх цифр системи називають її основою. Поряд написані цифри утворюють число. У конкретному числі кожна цифра займає певну позицію. Якщо та сама цифра має різне значення залежно від позиції, то систему числення називають позиційною.
У цифровій техніці для спрощення записів шістнадцяткових чисел, двоцифровим числам 10, 11, 12, 13, 14, 15 присвоюють такі буквені позначення: 10 - А, 11 - В, 12 - С, 13-D, 14-Е, 15-F.
Тоді шістнадцяткове число 1 10 12 5(16) можна записати скорочено: 1АС5(16) Існує декілька методів перетворення чисел з однієї системи числення в іншу.
Часто основи двійкової і шістнадцяткової систем числення позначають великими латинськими буквами: двійкову - В , шістнадцяткову - Н .
Метод додавання заміщених величин.
Для переведення числа з системи з основою k в систему з основою r необхідно зобразити число в розгорнутому вигляді в системі з основою k, всі цифри в основі k замінити на їхні зображення в системі з основою r, виконати всі операції множення додавання в системі з основою r.
Метод ділення цілих чисел на основу
Для використання даного методу ціле число однієї системи поділимо на основу бажаної іншої системи числення. Значення остачі присвоюємо молодшому розряду шуканого числа бажаної іншої системи. Результат першого ділення знову ділимо на основу бажаної іншої системи числення. Остачі присвоюємо наступний розряд числа бажаної нової системи числення. Подібну процедуру повторюють доти, поки результат ділення дорівнюватиме 0. Остача від останньої дії ділення є значенням старшого розряду числа бажаної нової системи числення.
Якщо десяткове число з дробовою частиною треба перетворити в двійкову систему числення, то цілу його частину перетворюють за першим правилом, а дробову - за другим і потім записують загальний результат.
При переведенні невірного дробу цілу частину переводять методом ділення, а дробову - множення, результати об'єднують.
Для переведення чисел з двійкової системи числення в шістнадцяткову систему числення достатньо цифрові частини двійкового числа справа і зліва від коми розбити на тетради (по чотири двійкових розряди), та додати до старшої і молодшої тетради недостаючі нулі (до чотирьох розрядів), кожній двійковій тетраді поставити у відповідність шістнадцяткову цифру.
Десяткова та двійкова системи відліку
Найбільш звичною для оператора є десяткова система або система з основою 10. Основа 10 говорить, що одним цифровим знаком можна зобразити десять різних чисел: 0,1,2,3,4,5,6,7,8,9. Цифрові ЕОМ використовують двійкову систему або систему з основою 2. Це значить, що однією цифрою можна зобразити два різних числа: 0 та 1. Це природна система обчислення для цифрових ЕОМ, оскільки цифровий сигнал має тільки два стани: низький та високий рівні, які можуть бути інтерпретовані як 0 та 1.
Щоб перейти з двійкової системи в десяткову існує два способи:
I спосіб – степеневий ряд (2) -> (10)
4 3 2 1 0 -1-2-3-4 4 3 2 1 0 -1 -2 -3 -4
10111,1101В = 1*2 + 0*2 + 1*2 + 1*2 + 1*2 + 1*2 + 1*2 + 0*2 + 1*2 = 23,8125D
Приклад 1:Переведення числа з двійкової системи числення 10111010(2) в десяткову систему числення.
10111010(2)= 1*27 +0*2б +1*25 +1*24 +1*23 +0*22 +1*21 +0*20 = 186(10)
II спосіб
10111,1101В = 23,8125D (2) -> (10)
*2 *0,5
2 0,5
+0 +0
2 0,5
*2 *0,5
4 0,25
+1 +1
5 1,25
*2 *0,5
10 0,625
+1 +1
11 1,625
*2 *0,5
22 0,8125
+1
23
Ці два способи використовують для перетворення числа із будь-якої системи в десяткове число. (8),(16) -> (10)
Нижче наведено механізм перетворення числа із десяткової системи в двійкову.
Для цілої частини (10) -> (2)
25:2 = 12 залишок 1
12:2 = 6 залишок 0
6:2 = 3 залишок 0
3:2 = 1 залишок 1
25D = 11001B
Для дробової частини з точністю до 3-х знаків після коми
0,865 0,73 0,46
* 2 * 2 * 2
1,730 1,46 0,92 25,865D = 11001,110B
0,865D = 0,110B
Даний механізм використовують для перетворення десяткового числа в будь-яку систему.
Вісімкова система відліку
Вісімкова система є однією з форм більш компактного зображення двійкових чисел. Тому для переходу з двійкової системи в вісімкову достатньо розбити двійкове число на групи по три розряди (триади) та в відповідності з таблицею 1 записати вісімкове число.
001 100 111 001 , 110 011 100 B (2) -> (8)
1 4 7 1 , 6 3 4 Q
Для переходу з вісімкової в двійкову систему, необхідно здійснити зворотній перехід, записавши кожну цифру вісімкового числа в вигляді двійкової триади
4 3 2 , 1 5 Q (8) -> (2)
100 011 010 , 001 101 B
При переході з 10-вої системи в вісімкову використовують таку схему
1042:8 =130 залишок 2 0,31 0,48 0,84 (10) -> (8)
130:8 = 16 залишок 2 * 8 * 8 * 8
16:8 = 2 залишок 0 2,48 3,84 6,72
1042D = 2022Q 0,31D = 0,236Q
1042,31D = 2022,236Q
При перетворені з 8-вої системи в 10-ву існує два способи:
I спосіб – степеневий ряд (8) -> (10)
2 1 0 -1-2 2 1 0 -1 -2
732,21Q = 7*8 + 3*8 + 2*8 + 2*8 + 1*8 = 474,256D
II спосіб
7 3 2 , 2 1Q 732,21Q = 474,265625D
*8 *0,125
56 0,125
+3 +2
59 2,125
*8 *0,125
472 0,265625
+ 2
474
Шістнадцяткова система відліку
Для переходу з двійкової системи в шістнадцяткову двійкове число розбивають на групи по чотири розряди (тетради) та в відповідності з таблицею 1 записують шістнадцяткове число.
0001 1010 1110 , 1100 1110 1000 В (2) -> (16)
1 A E , C E 8 H
При зворотньому переході з шістнадцяткової системи в двійкову необхідно записати кожну цифру шістнадцяткового числа в вигляді тетради.
5 8 C , B 2 H (16) -> (2)
0101 1000 1100 , 1011 0010 B
Для переходу з 10-вої системи в шістнадцяткову використовують таку схему.
5126:16 = 320 залишок 6 0,25 0,00 (10) -> (16)
320:16 = 20 залишок 0 * 16 * 16
20:16 = 1 залишок 4 4,00 0,00
5126D = 1406H 0,25D = 0,40 H
При зворотньому переході з шістнадцяткової системи в десяткову використовують два способи:
I спосіб – степеневий ряд
Приклад 2 : Переведення числа з шістнадцяткової системи числення А28,8 у десяткову систему числення.
А28,8(16)=А*162 + 2*161+ 8*160 + 8*16-1 = 10*256 +2*16 +8*1+8/16=2600,5(10)
3 2 1 0 -1-2
1406,40Н = 1*163 + 4*162 + 0*161 + 6*160 + 4*16-1 + 0*16-2 = 5126,25D
II спосіб
1 4 0 6 , 4
*16 *0,0625
16 0,25
+ 4
20
*16 1406,4Н = 5126,25D
320
+ 0
320
*16
5120
+ 6
5126
Контрольні питання:
Які Ви знаєте форми надання інформації в обчислювальних машинах? Охарактеризуйте їх.
Поясніть термін „позиційна система числення"?
Які позиційні системи числення Ви знаєте?
Які Ви знаєте методи перетворення чисел з однієї системи числення в іншу? Розкажіть про кожен з них.
Література:
Левенталь Л., Сєйвилл У. Программирование на языке ассемблердля микропроцессоров 8080 и 8085: Пер. С англ.. – М.: Радио и свіязь, 1987. – 448 с.: ил., стор. 140-146.
Токхайм Р. Микропроцессоры: Курс и упражнения/ Пер. с англ., под. ред. В.Н. Грасевича. М.: Энергоатомизадат, 1988. – 336 с.: ил., стор 18-30
Погорелый С.Д., Слободянюк Т.Ф. Програмное обеспечеие микропроцессорных систем: Справочник . - 2-е изд., перераб и доп. – К.: Техника, 1989. – 301 с., стор. 6
Лабораторна робота № 3
Тема: Двійкова арифметика.
Мета: Навчитись визначати типи даних.
Завдання: Виконати необхідні дії у відповідності з варіантом:
1. Перевести число із однієї системи в іншу.
2. Виконати машине множення чисел з фіксованою комою (ціла частина).
3. Виконати ділення чисел з фіксованою комою за методом без відновлення залишку (дробова частина).
4. Обчислити суму чисел з плаваючою комою.
Обладнання та матеріали: ПК, навчальний мікропроцесорний комплект асемблера VASM-2, методичні вказівки до лабораторних робіт.
Теоретичні відомості
Над двійковими числами, як і над числами, записаними у будь-якій іншій системі числення, можна виконувати арифметичні операції: додавання, віднімання, множення і ділення.
Правила арифметики у всіх позиційних системах аналогічні.
Головною операцією, яка використовується в цифрових пристроях при виконанні різних арифметичних дій є операція алгебраїчного додавання чисел.
Додавання двох чисел в двійковій системі відліку виконується на основі таблиці двійкового додавання:
0+0=0
1+0=1
0+1=1
1+1=10 - перенос в сусідній старший розряд
Наприклад : 10110100
+01101000
100011100
Віднімання двох чисел виконується на основі таблиці двійкового віднімання:
0-0=0
1-0=1
1-1=0
10-1=1позика із сусіднього старшого розряду
Наприклад : 11101010
-01100100
10000110
Але в цифровій техніці операція віднімання з використанням позики практично не застосовується.
Від’ємне число представляють в оберненому, доповненому або в модифікованому коді і операцію віднімання замінюють на операцію додавання.
Значні труднощі завжди викликає кодування від’ємних чисел. Найбільш популярні тепер три способи кодування.
1 спосіб - представлення від’ємних цілих чисел в вигляді знак-модуль. Від’ємні та додатні числа представляються однаково, за виключенням лівого знакового розряду.
Якщо 1, то число від’ємне, якщо 0, то додатне.
-00011101
10011101 ПК
Недоліком є складність процедури додавання чисел з різними знаками.
2 спосіб - представлення чисел за допомогою оберненого коду.
Число доповнюємо нулями до машинного слова і інвертуємо.
10011101 ПК
11100010 ОК
Перевагою такого кодування є простота отримання оберненого коду та можливість не враховувати знаки при додаванні та відніманні.
Недоліки: утворюються два різних представлення нуля, нееквівалентних по запису; необхідний циклічний перенос при додаванні для отримання вірного результату.
3 спосіб - це доповнений код або двійкове доповнення.
Для від’ємного числа доповнений код отримуємо шляхом інвертування значущих розрядів числа, після чого до молодшого розряду числа додається одиниця.
-00011101
10011101 ПК
11100010 ОК
11100011 ДК
Специфіка доповненого коду є в тому, що так як і в десятковій системі, тут можна брати доповнення будь-якого від’ємного числа до основи системи:
(10) 5 + (-2) = 3 (2) 5 = 0000 0101(2) -2 = 1000 0010(2) ПК
10 5 0000 0101 1111 1101 ОК
- 2 +8 +1111 1110 1111 1110 ОК
8 13 10000 0011(2) = 3(10)
Представлення чисел в вигляді доповненого коду має такі переваги:
додавання та віднімання виконуються просто;
- тут одне представлення нуля.
Для виявлення переповнення розрядної сітки використовують модифікований доповнений код, де для знаку відводять два старші розряди.
00000001 110000001 МПК
111111110 МОК
111111111 МДК
Числа, що мають цілу і дробову частину можуть бути представлені в мікро ЕОМ в формі з фіксованою комою, при цьому дробова та ціла частини можуть займати визначене число байтів
Приклад 1
0000 1010 =А(16) -6(16)=1000 0110 ПК
1111 1001 ОК
0000 1010 ПК 10
+1111 1001 ОК -6
1 0000 0011 4
+1
0000 0100 ПК
Приклад 2
1000 1010 = -А(16) ПК 6(16)=0000 0110
1111 0101 ОК
1111 0110 ОК -10
+0000 0110 ПК +6
1111 1011 ОК -4
1000 0100 ПК
Приклад 3
0000 1010 =А(16) -6(16)=1000 0110 ПК
1111 1001 ОК
1111 1010 ДК
0000 1010 ПК 10
+1111 1010 ОК -6
1 0000 0100 ПК 4
відкидається
Приклад 4
1000 1010 = -А(16) ПК 6(16)=0000 0110
1111 0101 ОК
1111 0110 ДК
1111 0110 ОК -10
+0000 0110 ПК 6
1111 1011 ОК -4
1000 0100 ПК
Додавання: 1. Порядки доданків вирівнюють (порядок меншого числа приводять до порядку більшого, а мантису меншого числа зміщують вправо на відповідне число розрядів)
2. Мантиси додають
3. Пpи необхідності pезультат ноpмалізують
Поpядок суми доpівнює поpядку більшого доданку + (можливо)1, якщо відбувалась ноpмалізація
Пpиклад:
0,101*1011 + 0,11*1010 = (0,101 + 0,011) * 1011 = 1*1011 = 0,1*10100
0,101 робимо нормалізацію, так як мантиса >= 1.
+0,011
1,000
Віднімання:1. Як й пpи додаванні поpядки чисел виpівнюються
2. Мантиси віднімають (опеpацію віднімання заміняють опеpацією додавання, але пpи цьому мантиса дpугого числа беpеться в обеpненому або доповненому коді)
3. Пpи необхідності pезультат ноpмалізують
Пpиклад:
0,101*1011 - 0,11*1010=(0,101 - 0,011)*1011=0,01*1011
0,101 ПК 1,011 ПК
+1,101 ДК 1,100 ОК
10,010 ПК 1,101 ДК
Множення двійкових багаторозрядних чисел включає в себе операції - визначення знака добутку та визначення його абсолютної величини. Знаковий розряд отримують додаванням цифр знакових розрядів співмножників без формування переносу.
0+0=0
0+1=1
1+0=1
1+1=0 без формування переносу
Абсолютна величина значення добутку визначається шляхом множення чисел без врахування їх знаків на основі таблиці двійкового множення :
0*0=0
1*0=0
0*1=0
1*1=1
Особливість множення двійкових чисел полягає в тому, що частковий добуток може бути або зсунутим на відповідне число розрядів, якщо відповідна цифра множника дорівнює 1, або нулем, якщо відповідна цифра множника дорівнює 0.
Приклад множення цілих чисел:
0 000 1101*0 000 0101
1101 множене
* 101 множник (ручне множення)
1101 1-й частковий добуток
+ 0000 2-й частковий добуток
1101__ 3-й частковий добуток
1000001 добуток
В цифрових приладах для цілих чисел з фіксованою комою множення починають з старшого розряду і зсув здійснюють вліво.
1101
* 101 (машинне множення)
1101 3-й частковий добуток
(11010 зсув на один розряд вліво
0000 2-й частковий добуток
11010
(110100 зсув на один розряд вліво
1101 1-й частковий добуток
100001 добуток
Для дробових чисел з фіксованою комою множення зручніше починати з молодшого розряду, а зсув робити вправо.
0,1101 Дробова частина
* 0,101 (машинне множення)
0,1101 1-й частковий добуток
0,01101( зсув на один розряд вправо
0,0000 2-й частковий добуток
0,01101
0,01101( зсув на один розряд вправо
0,1101 3-й частковий добуток
1,000001
0,1000001 ( добуток
Якщо множене, чи множник, або обоє разом мають цілу та дробову частини, то кома в числах не враховується, вони множаться як два цілих числа. Від отриманого результату з правої сторони відділяють комою m+n розрядів, де m - число дробових розрядів множеного, а n - число дробових розрядів множника.
Множення: 1. Поpядки додаються
2. Мантиси пеpемножуються
3. Пpи необхідності pезультат ноpмалізується
Пpиклад:
0,101*1011 * 0,11*1010=0,01111*10101
0,101
* 0,11
0,101 (
0,0101
+ 0,101
0,1111 (
0,01111
Ділення двійкових багаторозрядних чисел включає в себе дві операції:
визначення знаку,
визначення абсолютної величини.
ділене / дільник = частка
Знаковий розряд під час ділення визначають так, як і під час множення.
В цифрових приладах при виконанні операції ділення, так як і при виконанні операції алгебраїчного додавання використовують доповнений та модифікований коди.
Для прискорення ділення використовують метод без відновлення залишку. При цьому методі можуть бути як додатні, так і від’ємні залишки при відніманні дільника. Якщо черговий залишок додатній, то в частку пишуть 1, а на наступному циклі роботи дільник віднімається із зсунутого на один розряд вліво залишку. Якщо черговий залишок від‘ємний, то в частку пишуть 0, а на наступному циклі роботи дільник додається до зсунутого на один розряд вліво залишку.
Примітка: Метод використовується для дробових чисел, причому A<B, при A/B.
Приклад.
A=0,10011 B=0,11001 ПК -В 11,11001
МДК А 00,10011 МДК В 00,11001 ОК -В 11,00110
МДК-В 11,00111 ДК -В 11,00111
00,10011 00,11001
+ 11,00111 0,110
11,11010
(11,10100 зсув вліво
+ 00,11001
00,01101
(00,11010 зсув вліво
+ 11,00111
00,00001
(00,00010 зсув вліво
+ 11,00111
11,01001
Ділення: 1. Поpядки віднімаються
2. Мантиси діляться
3. Пpи необхідності pезультат ноpмалізується
Пpиклад:
0,0101*10100/0,1010*10101=(0,0101/0,1010)*10-001=0,1011*10-001
00,0101 00,1010 11,1010 МПК 4 - 5 = -1
11,0110 0,1011 11,0101 МОК 0000 0100 ПК 1000 0101 ПК
11,1011 11,0110 МДК +1111 1011 ДК 1111 1010 ОК
11,0110 1111 1111 ДК 1111 1011 ДК
00,1010 1000 0000 ОК
00,0000 +1
00,0000 1000 0001 ПК
11,0110
11,