АЛГОРИТМИ ВИКОНАННЯ АРИФМЕТИЧНИХ ОПЕРАЦІЙ НАД БАГАТОРОЗРЯДНИМИ ЧИСЛАМИ В ОДНОКРИСТАЛЬНОМУ МП 8080 (КР580ВМ80А).

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Системи автоматизованого проектуваня

Інформація про роботу

Рік:
2006
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютери і мікропроцесорні системи
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР Звіт про виконання лабораторної роботи №7 на тему: “АЛГОРИТМИ ВИКОНАННЯ АРИФМЕТИЧНИХ ОПЕРАЦІЙ НАД БАГАТОРОЗРЯДНИМИ ЧИСЛАМИ В ОДНОКРИСТАЛЬНОМУ МП 8080 (КР580ВМ80А)” з курсу: “ Комп’ютери та мікропроцесорні системи ” Виконав студент групи КН-3 Львів - 2006 МЕТА РОБОТИ Вивчити алгоритми виконання арифметичних операцій над багаторозрядними числами в однокристальному мікропроцесорі Intel 8080 (КР580ВМ80А). Набути практичних навиків складання та налагоджування програм виконання операцій додавання/віднімання та множення/ділення багаторозрядних чисел з використанням цих алгоритмів. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Однокристальний мікропроцесор Intel 8080 (КР580ВМ80А) - 8 розрядний, тобто виконує арифметико-логічні операції над байтами даних. Однак в багатьох застосуваннях МПС 8-біт недостатньо для одержання заданої точності. В МП КР580ВМ80А можна визначити тип даних любого формату (ефективно кратний 8-бітам: 24біти, 32біти,...,1024біти). На основі виконання заданого набору команд, виконання операцій з такими форматами можна здійснювати побайтно у 8-розрядному АЛУ. Тому над числами, що представляються двома і більше байтами, основні арифметичні операції реалізуються програмним шляхом. Додавання та віднімання багаторозрядних чисел цілого типу При складанні програм додавання і віднімання багаторозрядних чисел важливу особливість становить організація циклічної частини арифметичної операції. Дані операції спочатку починають виконувати над молодшими байтами (при початковому 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-розрядне АЛУ та пакетні форми представлення чисел. АРИФМЕТИЧНІ ОПЕРАЦІЇ НАД ДІЙСНИМИ ЧИСЛАМИ Існує широкий клас задач, в тому числі обчислення рівнянь цифрового фільтра (ЦФ), де необхідно проводити обчислення в МПС використовуючи дійсні числа. В цифрових пристроях використовуються дві форми представлення чисел: формат з фіксованою комою, формат з плаваючою комою. Арифметичні операції над числами в форматі з фіксованою комою В форматі з фіксованою комою відводяться ціла частина і дробова частина у вигляді цілих чисел. Один старший розряд використовається в якості знаку. Кома відділяє цілу частину числа від дробової та займає фіксоване положення. Враховуючи 8-розрядне АЛУ МП КР580ВМ80А, найбільш поширені формати чисел з фіксованою комою, де відведено на цілу і дробову частину по тетраді, байту, слову (4:4, 8:8, 16:16 і тд. ). Можна задати і виконувати операції й в інших форматах, наприклад 6:2, але деякі операції над такими форматами можуть ускладнюватись. Неправильний вибір розрядної сітки може в результаті виконання арифметичних операцій привести до переповнення, що в цьому випадку вимагає масштабування. Додавання/віднімання двійкових чисел представлених в форматі з фіксованою комою, по суті не відрізняються від операцій додавання або віднімання цілих багаторозрядних чисел. Наприклад, результати двійкового додавання або віднімання дійсних чисел матимуть вигляд: а) 010000, 1000 16,5 + 010010, 1000 +18,5 100011, 0000 35,0 б) 0110,0100 6,25 в) 1000,1000 8,50 +1000,1000 +8,50 -0110,0100 - 6,25 1110,1100 14.75 , 0010,0100 2,25 . При цьому, враховується розряд перенесення CY з дробової частини в цілу. Арифметичні операції множення і ділення в форматі з фіксованою комою не відрізняються по суті з алгоритмами їх виконання над цілими числами. Характерним є те, що розрядність добутку виділяється для цілої та дробової частин. Наприклад, а) 8.5 1000,1000 х 6,25 х 0110,0100 ; 53,125 00110101,00100000 б) 0,8125 0,1101 х 0,6875 х 0,1011 . 0,10001111 Для порівняння, добуток цілих чисел рівний 32 розряди, для множників 16х16 розрядів, а добуток з фіксованою комою рівний 16:16, для множників (8:8) х (8:8) розрядів (добуток з фіксованою комою рівний 32:32, для множників (16:16)х(16:16) розрядів). Операція ділення для чисел представлених в форматі з фіксованою комою містить дії аналогічні виконанню операції ділення над багаторозрядними цілими числами, результатом операції є частка та залишок представлені у заданих форматах. Наприклад, якщо ділене і дільник представлені в форматі (4:4), то необхідно одержану частку перемножити на 2 в четвертій степені для одержання відповідного формату: 1010,0000 /0101.0000 = 0010  0010,0000 (після зсуву на 4-біти); 10,0 / 5,0 = 2 . Арифметичні операції над числами в форматі з плаваючою комою Формат представлення чисел з плаваючою комою передбачає представлення числа в показниковій формі: мантиса, основа, порядок. В МПС такі числа представлені у вигляді двох груп чисел: перша група називається мантисою і визначає саме число, друга група пназивається порядком. Якщо задається формат з умовою наявності старшого розряду мантиси не рівного нулю, то маєм нормальну форму представлення. В цій формі запису маєм значно більший діапазон представлення дійсних чисел в порівнянні з такою самою розрядністю чисел з фіксованою комою, але алгоритм виконання арифметичних операцій при цьому ускладнюється. Так, операція додавання або віднімання виконується такою послідовністю: - вирівнюються порядки доданків, молодший порядок збільшується до більшого порядку одного з доданків; - виконується перетворення мантис в доповнюючий код, при необхідноcті; - відповідно, коректується мантиса числа, порядок якого вирівнюється; - виконується додавання мантис аналогічно алгоритму додавання чисел з фіксованою комою; - у випадку необхідності виконується нормалізація результату; - до суми записуєм сформований порядок. Операція множення в форматі з плаваючою крапкою виконується за такою послідовністю: - визначається знак добутку; - перемножуються мантиси співмножників аналогічно алгоритму множення чисел з фіксованою комою; - визначається порядок добутку за допомогою арифметичної операції додавання цілих чисел зі знаком; - у випадку необхідності виконується нормалізація результату; - до суми записуєм сформований порядок. Ділення в форматі з плаваючою крапкою виконується аналогічно так, як і множення. Мантиса діленого повинна бути менше мантиси дільника, що одержуєм через масштабування. Порядок частки визначається відніманням порядків діленого та дільника. У випадку необхідності виконується нормалізація результату; Використання набору арифметико-логічних команд МП КР580ВМ80А використовується для виконання арифметичних операцій над багаторозрядними числами, форма представлення і формати яких визначаються на етапі проектування. Індивідуальне завдання: Виконати арифметичні операції: 1326/13-414/9--5*7 Текст програми org 100h mvi b,13 ;dilene/mno*ene mvi c,26 mvi d,13 ;dilnyk/mno*nyk call m1 ;13/13 mvi l,100 ;rezultat 1*100 mov b,c mvi d,13 call m1 mov a,l add e mov l,a ;rezultat 1326/13 mvi b,41 mvi d,9 call m1 mov c,d ;zalywok v c mov d,e ;rezultat 41/9 v d mvi b,10 call m2 mov d,c mov c,a ;rezultat 10*(41/9)-cila 4astyna call m2 ;v a rezultat 10*(41/9)-zalywok adi 4 mov b,a mvi d,9 call m1 mov a,e add c mov c,a ;rezultat 414/9 mvi b,7 mvi d,5 call m2 mov b,a ;rezultat 5*7 mov a,l sub c sub b hlt m1: MOV A,B mvi e,0 CYCLE: SUB D JC L1 INr e JMP CYCLE L1: ADD D mov d,a ret m2: mov a,b mvi e,1 cc2: add b inr e mov h,a mov a,e cmp d jz l2 mov a,h jmp cc2 l2: mov a,h ret Карта памп’яті  Висновок: на цій лабораторній роботі я вивчив алгоритми виконання арифметичних операцій над багаторозрядними числами в однокристальному мікропроцесорі Intel 8080 (КР580ВМ80А), набув практичних навиків складання та налагоджування програм виконання операцій додавання/віднімання та множення/ділення багаторозрядних чисел з використанням цих алгоритмів.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!