Арифметичні та логічні команди однокристального МП КР580.

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР Звіт про виконання лабораторної роботи №3 на тему: “ Арифметичні та логічні команди однокристального МП КР580 ” з курсу: “ Комп’ютери та мікропроцесорні системи ” Виконав студент групи КН-3 Львів - 2006 1. МЕТА РОБОТИ Вивчити арифметичні та логічні команди однокристального мікропроцесора (МП) КР580, набути практичні навики складання і налагоджування програм з використанням цих команд. 2. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Обчислювальні можливості МП КР580 визначають команди додавання і команди віднімання 8-бітних операндів. Операції множення і ділення, а також операції з іншими форматами даних реалізуються за допомогою підпрограм, які містять команди додавання і віднімання 8-бітних операндів. Це призводить до значного зменшення продуктивності МП-системи. Команди арифметичних операцій включають команди інкрементування (збільшення на 1) як 8-бітних, так і 16-бітних операндів. У групу арифметичних команд включена команда десяткової корекції аргументу. Вона дозволяє виконувати обробку двійково-кодованих десяткових чисел. У всіх командах арифметичних операцій допускається інтерпретація 8-бітних операндів як беззнакових цілих, так і знакових цілих чисел. Формат беззнакових цілих чисел такий: 7 6 5 4 3 2 1 0 значущі біти Формат знакових чисел такий: 7 6 5 4 3 2 1 0 S значущі біти знак Стандартне кодування знака має такий вигляд: S = 0 - число додатне, S = 1 - число від'ємне. Додатні числа представляються у прямому коді. Операцію віднімання МП реалізує як операцію додавання операндів у доповнюючому коді. У прямому коді біт s містить знак числа, а решту бітів містить абсолютне значення числа. Наприклад: число 56 -> 38Н 0011 1000 число (-75)  (-4В)Н 1100 1011 У доповнюючому коді зберігається загальний формат знакових цілих чисел. Додатні числа представляються без будь-яких змін, як в прямому коді. Отримання доповнюючого коду від'ємного числа (-Х) здійснюється за такою формулою Х доп. = 2**n - [X], де n - довжина машинного слова. Алгоритм отримання доповнюючого коду від'ємного числа містить такі кроки: 1. Записати n - бітний модуль від'ємного числа; 2. Отримати обернений код числа, інвертувавши усі біти; 3. До оберненого коду додати 1. Наприклад: (-83)  (-53)Н 1. модуль числа 0101 0011 2. обернений код числа 1010 1100 3. доповнюючий код числа 1010 1100 +______1 1010 1101 Двійково-кодовані десяткові числа представляються в упакованому форматі і складаються з двох тетрад. Молодша цифра займає праву тетраду (біти 3 : 0), старша-ліву (біти 7 : 4). 7 6 5 4 3 2 1 0 старша цифра молодша цифра Обидві цифри представляються своїми двійковими еквівалентами (кодом 8421 за двійковими вагами). Максимальне число, яке може містити тетрада - 9, а мінімальне -0. В арифметичних операціях важливе місце відводиться так званим ознакам або прапорцям, які показують особливості отриманого результату операцій. Команди арифметичних операцій діють на прапорці по-різному, але в загальному вони показують такі ознаки результату: CY - прапорець переносу (Саrr Y) в операції додавання (віднімання) встановлюється в 1 при наявності переносу (займу) із старшого біта результату: по суті, цей прапорець можна вважати розширенням результату на один біт вліво. S - прапорець знака (Sign) своїм станом повторює значення старшого (знакового) біта результату: Z - прапорець нуля (Zero) встановлюється в 1 при отриманні нульового результату 0000 0000: P - прапорець паритету (Parity), або парності встановлюється в 1 при наявності переносу (позики) з молодшої тетради результату в старшу. Найінтенсивніше в обчислювальних алгоритмах використовується прапорець CY. Саме завдяки йому малорозрядний МП може оперувати числами довільної розрядності. Прапорець АС дозволяє працювати з десятковими числами. Однокристальний МП КР580 може виконувати два типи арифметичних операцій (додавання і віднімання) з різними способами адресації. Команди цієї групи виконують арифметичні операції над даними в регістрах і комірках пам'яті. При виконанні арифметичних операцій усі ознаки (прапорці) встановлюються у відповідний стан у відповідності із загальними правилами. Вийнятки спеціально обумовлюються. 1. Додавання вмісту регістра до вмісту акумулятора. ADD r (A)  (A) + (r) Вміст регістра r(A,B,C,D,E,H,L) додається до вмісту акумулятора. Результат заноситься в акумулятор. Команда змінює стан прапорців Z,S,P,CY,AC за загальними правилами. 2. Додавання вмісту комірки пам'яті до вмісту акумулятора ADD M (A0  (A) + ((H)(L)) Вміст комірки пам'яті, адреса якої міститься в регістрах H і L, додається до вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 3. Безпосереднє додавання ADI байт (A)  (A) + (байт 2) Вміст другого байта команди додається до вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 4. Додавання вмісту регістра і біта прапорця переносу до вмісту акумулятора. ADC r (A)  (A) + (r) + (CY) Вміст регістра r(A,B,C,D,E,H,L) і біт прапорця переносу CY додається до вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 5. Додавання вмісту комірки пам'яті і біта прапорця переносу до вмісту акумулятора ADC M (A)  (A) + ((H)(L)) + (CY) Вміст комірки пам'яті, адреса якої вказана в регістрах H і L, і вміст біта прапорця переносу додається до вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 6. Безпосереднє додавання з бітом переносу ACI байт (A)  (A) + (байт 2) + (CY) Вміст другого байта команди і біта прапорця переносу додається до вмісту акумулятора. Результат записується в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 7. Віднімання вмісту регістра SUB r (A)  (A) - (r) Вміст регістра r(A,B,C,D,E,H,L) віднімається від вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 8. Віднімання вмісту комірки пам'яті SUB M (A)  (A) - ((H)(L)) Вміст комірки пам'яті, адреса якої вказана в регістрах H і L , віднімається від вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z, S, P, CY, AC за загальними правилами. 9. Безпосереднє віднімання SUI байт (А)  (А) - (байт 2) Вміст другого байта команди віднімається від вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці Z,S,P,CY,AC за загальними правилами. 10. Віднімання вмісту регістра і біта переносу SBB r (А)  (А) - (r) - (CY) Вміст регістра r(A,B,С,D,Е,Н,L) і біт прапорця переносу CY віднімаються від вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на прапорці за загальними правилами. 11. Віднімання вмісту комірки пам’яті і біта переносу SBB M (A)  (A) - ((H)(L)) - (CY) Вміст комірки пам'яті, адреса якої міститься в регістрах і вміст біта прапорця переносу CY віднімаються від вмісту акумулятора. Результат заноситься в акумулятор. Команда впливає на усі прапорці за загальними правилами. 12. Безпосереднє віднімання з позикою SBI байт (A)  (байт 2) - (CY) Вміст другого байта команди і біт прапорця переносу CY віднімаються від акумулятора. Результат заноситься в акумулятор. Команда впливає на усі прапорці за загальними правилами. 13. Збільшення вмісту регістра INR r (r)  (r) + 1 Вміст регістра r(A,B,C,D,E,H,L) збільшується на 1. Команда впливає на стан усіх прапорців, крім прапорця переносу CY. 14. Збільшення вмісту комірки пам'яті INR M ((H)(L))  ((H)(L)) + 1 Вміст комірки пам'яті, адреса якої вказана в регістрах H і L, збільшується на одиницю. Команда впливає на стан усіх прапорців, крім прапорця переносу CY. 15. Зменшення вмісту регістра DCR r (r)  (r) -1 Вміст регістра r(A,B,C,D,E,H,L) зменшується на одиницю. Команда впливає на усі прапорці, крім прапорця переносу CY. 16. Зменшення вмісту комірки пам'яті DCR M ((H)(L))  ((H)(L)) – 1 Вміст комірки пам'яті, адреса якої міститься в регістрах H і L, зменшується на одиницю. Команда впливає на усі прапорці, крім прапорця переносу CY. 17. Збільшення вмісту пари регістрів на одиницю INX rp (rh)(rl)  (rh)(rl) + 1 Вміст пари регістрів rp збільшується на одиницю. Команда не впливає на прапорці. 18. Зменшення вмісту пари регістрів DCX rp (rh)(rl)  (rh)(rl) - 1 Вміст пари регістрів rp зменшується на одиницю. Команда не впливає на прапорці. 19. Додавання вмісту пари регістрів до вмісту регістрів H і L. DAD rp (H)(L)  (H)(L) + (rh)(rl) Вміст пари регістрів rp ((B,C), (D,E), (H,L), SP) додається до вмісту регістрів H і L. Використовується тільки прапорець переносу CY. Він встановлюється, коли має місце перенос при додаванні з подвійною точністю, в протилежному випадку він скидається. 20. Десяткове доповнення акумулятора DAA 8-бітне число в акумуляторі доповнюється до представлення у вигляді двох 4-бітних чисел в двійково-десятковому коді за допомогою таких операцій: - Якщо число, яке представлене чотирма молодшими бітами акумулятора, більше ніж 9, або встановлений прапорець допоміжного переносу АС, тоді до вмісту акумулятора додається 6; Якщо тепер число, яке представлене чотирма старшими бітами акумулятора, більше ніж 9, або встановлений прапорець переносу CY, тоді число 6 додається до числа, яке утворене чотирма старшими бітами акумулятора. Команда встановлює усі прапорці за загальними правилами. 21. Логічне множення вмісту регістра і акумулятора ANA R; (A)  (A) ^ (R); R:A,B,C,D,E,H,L. Над вмістом регістра загального призначення (РЗП) R і акумулятора виконується операція логічного множення. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлюються за загальними правилами. 22. Логічне множення вмісту комірки пам'яті і акумулятора ANA M; (A)  (A) ^ ((H)(L)) Над вмістом комірки пам'яті, адреса якої міститься в регістрах H і L, і вмістом акумулятора виконується операція логічного множення. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 23. Логічне множення з безпосереднім операндом ANI d8; (A)(A) ^ (байт2); d8-константа довжиною в один байт. Над вмістом другого байта команди і акумулятора виконується операція логічного множення. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 24. Логічне додавання вмісту акумулятора і регістра ORA v R; (A)  (A) v (R); R:A,B,C,D,E,H,L Над вмістом РЗП R і акумулятора виконується операція логічного додавання. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 25. Логічне додавання вмісту комірки пам'яті і акумулятора ORA v M; (A)  (A) ((H)(L)) Вміст комірки пам'яті, адреса якої міститься в регістрах H і L, логічно додається до вмісту акумулятора. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 26. Логічне додавання з безпосереднім операндом. ORI v d8; (A)  (A) (байт2) Вміст другого байта команди логічно додається до вмісту акумулятора. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 27. Додавання за модулем 2 вмісту акумулятора і вмісту регістра XRA R; (A)  (A) Е (R); R:A,B,C,D,E,H,L До вмісту РЗП R додається по модулю 2 вміст акумулятора. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлюються за загальними правилами. 28. Додавання за модулем 2 вмісту комірки пам'яті і вмісту акумулятора XRA M; (A)  (A) Е ((H)(L)) До вмісту комірки пам'яті, адреса якої міститься в регістрах H і L, додається за модулем 2 вміст акумулятора. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєютьтся за загальними правилами. 29. Додавання за модулем 2 з безпосереднім операндом XRI d8; (A)  (A) Е (d8) До вмісту акумулятора додається за модулем 2 вміст другого байта команди. Результат записується в акумулятор. Прапорці CY і AC скидаються в 0. Решта прапорців встановлєються за загальними правилами. 30. Доповнення акумулятора CMA; (A)  (A) Вміст акумулятора інвертується. Результат записується в акумулятор. Команда на прапорці не впливає. 31. Зсув вліво через прапорець переносу RAL; (CY)  (A7); (A0)  (CY); (An+1)  (An) Вміст акумулятора зсувається на одну позицію вліво через біт прапорця переносу CY. Молодший біт акумулятора дорівнює біту прапорця переносу CY, а CY - дорівнює величині старшого біта акумулятора. CY 7 6 5 4 3 2 1 0 Акумулятор Команда впливає лише на прапорець переносу CY. 32. Зсув вправо через прапорець переносу RAR; (A7)  (CY); (CY)  (A0); (An)  (An+1) Вміст акумулятора зсувається на одну позицію вправо через біт прапорця переносу CY. Біт CY дорівнює молодшому біту акумулятора, а старший біт акумулятора дорівнює біту прапорця переносу CY. CY 7 6 5 4 3 2 1 0 Акумулятор Команда впливає лише на прапорець переносу CY. 33. Циклічний зсув вліво RLC; (CY)  (A7); (A0)  (A7); (An+1)  (An) Вміст акумулятора зсувається вліво на одну позицію. Вміст старшого біта акумулятора заноситься в молодший біт і біт прапорця переносу CY. CY 7 6 5 4 3 2 1 0 Акумулятор Команда впливає лише на прапорець переносу CY. 34. Циклічний зсув вправо RRC; (CY)  (A0); (A7)  (A0); (An)  (An+1) Вміст акумулятора зсувається на одну позицію вправо. Вміст молодшого біта акумулятора заноситься в найстарший біт і біт пра-порця переносу. Команда впливає лише на прапорець переносу CY. 35. Встановлення біта прапорця переносу STC; (CY)  (1); Біт прапорця переносу встановлюється в 1. На інші прапорці команда не впливає. 36. Інвертування біта прапорця переносу CMC; (CY)  (CY) На інші прапорці команда не впливає. Постановка лабораторного завдання Використовуючи акумулятор, ввести дані 89, 71, 65, 58 в пам’ять. Виконати над ними дії: (1-2)+(3-4). Результат зсунути вліво на 2 розряди. Текст програми ORG 100H LXI H,800H MVI A,89 MOV M,A INX H MVI A,71 MOV M,A INX H MVI A,65 MOV M,A INX H MVI A,58 MOV M,A LDA 800H LXI H,801H SUB M MOV B,A LDA 802H LXI H,803H SUB M ADD B RAL RAL HLT Результати виконання програми  EMBED PBrush  Висновки: виконавши дану лабораторну роботу, я вивчив арифметичні та логічні команди МП КР 580 та набув практичні навики складання програм з використанням цих команд.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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