
- •Робота з компілятором ср/м
- •Інструментальні засоби динамічного відлагодження програм
- •Програмні засоби організації програми
- •Текст програми
- •Результати виконання програми
- •Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій
- •Способи адресації операндів і команди пересилання даних однокристального мп кр580
- •Теоретичні відомості Способи адресації в мп кр580
- •2.2. Команди пересилання даних мп кр580
- •Наприклад :
- •2.3. Стек і команди роботи зі стеком в однокристальному мп кр580
- •Карта пам'яті
- •Текст програми
- •Результати виконання програми
- •Теоретичні відомості
- •2. Короткі теоретичні відомості
- •Карта пам'яті
- •Текст програми
- •Результати виконання програми
- •Теоретичні відомості
- •2. 6. С умова адреси - умовний виклик підпрограми.
- •2. 8. R умова - умовне повернення з підпрограми.
- •2. 10. Організація підпрограм.
- •Карта пам’яті Текст програми
- •Результати виконання програми:
- •Теоретичні відомості
- •Арифметична операція множення
- •Арифметична операція ділення
- •Словесний опис алгоритму
- •Приклад множення чисел
- •Запис початкових даних
- •Додання
- •Другого множника
- •Зсув першого множника
- •Результати виконання програми
- •Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій
- •Теоретичні відомості
- •Арифметична операція додавання чисел в bcd кодах
- •2.2 Арифметична операція віднімання чисел в bcd кодах
- •2.3 Арифметична операція додавання/віднімання знакових чисел в bcd кодах
- •Перетворення чисел двійково-десяткового формату в двійковий формат і з двійкового формату в bcd-коди.
- •Карта пам'яті
- •Код програми
- •Зміст файлу lr6.Prn
- •Результати виконання програми
- •Теоретичні відомості
- •Додавання та віднімання багаторозрядних чисел цілого типу
- •Множення та ділення багаторозрядних чисел цілого типу
- •Арифметичні операції над дійсними числами
- •3.1 Арифметичні операції над числами в форматі з фіксованою комою
- •Арифметичні операції над числами в форматі з плаваючою комою
- •Код програми
- •Зміст файлу lr7.Prn
- •Результати виконання програми
Додавання та віднімання багаторозрядних чисел цілого типу
При складанні програм додавання і віднімання багаторозрядних чисел важливу особливість становить організація циклічної частини арифметичної операції. Дані операції спочатку починають виконувати над молодшими байтами (при початковому CY=0), а пізніше над всіма решта (з молодшого до найстаршого) з врахуванням переносів. Основними командами, що забезпечує додавання текучих байтів з врахуванням прапорця переносу CY є команди:
ADC r (A)(A)+(r)+(CY);
ADC M (A)(A)+((H)(L))+(CY);
ACI байт (A)(A)+(байт)+(CY);
віднімання: SBB r (A)(A)-(r)-(CY);
SBB M (A)(A)-((H)(L))-(CY);
SBI байт (A)(A)-(байт)-(CY);
Наведені команди дадавання/віднімання використовують значення переносу CY, сформованого на попередньому повторенні циклу. Тобто, організований цикл багаторозрядної арифметичної операції не повинен містити команд, що можуть змінити значення CY. Якщо внесення в цикл багаторозрядної операції команд, що впливають на прапорець переносу, необхідне, то попередньо запам'ятовується CY, а перед багаторозрядною операцією - відновлюється.
Множення та ділення багаторозрядних чисел цілого типу
В однокристальному мікропроцесорі Intel 8080 (КР580ВМ80А) у 8 розрядному АЛУ ефективно виконувати операцію множення (4)х(4)=(8) розрядними числами. Відомі способи і алгоритми множення/ділення (алгоритм Бута, ділення з відновленням залишку) виконуються в МПС через команди додавання/віднімання та зсуву багаторозрядних даних.
Для богаторозрядних цілих чисел в однокристальному мікропроцесорі КР580ВМ80А можна створити підпрограму множення різноманітних двійкових форматів (8)х(4)=(12), (8)х(8)=(16), (16)х(8)=(24), (16)х(16)=(32) та ін. Множення над двома n1 та n2-бітними співмножниками формує (n1+n2) -розрядний добуток. Підпрограма ділення багаторозрядних чисел більших ніж 8-розрядів може використовувати формати (16):(8), (24):(8), (24):(16), (32):(16) та ін. Ділення над двома n1, n2-бітними співмножниками формує (n1-n2) - розрядну частку.
Можна задати і виконувати операції множення/ділення й в інших форматах, наприклад 6:2, але при цьому виконання операцій над такими форматами може ускладнюватись.
Важливо відзначити, що у випадку множення/ділення на цілі числа рівні степені двійки (2,4,8,...,2n )можна використовувати команди зсуву n-раз вправо/вліво, попередньо встановивши біт прапорця переносу в нуль:
STC ; (CY) (1)
CMC ; (CY=0)
для множення на 2 RAL ; (CY)(A7), (A0) (CY=0), (An+1) (An);
для ділення на 2 RAR ; (CY=0)(A7), (A0) (CY), (An) (An+1).
Однак, перетворення в процесі виконання арифметичних операцій, у випадку великого об'єму вхідних багаторозрядних даних і вихідних результатів, веде до помітних витрат комп'ютерного часу. Тому сучасні скалярні мікропроцесори у вигляді надвеликих інтегральних схем (НВІС) використовують 64-розрядне АЛУ та пакетні форми представлення чисел.