КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Програма Алгоритм. Приклад 10. Додавання десяткових чисел
Приклад 10. Додавання десяткових чисел Програма
В більшості 8-бітних мікропроцесорів є спеціальна команда DAA (десяткова корекція), що використовує біти Cy та AC регістру F. Вона розрахована на те, що в акумуляторі знаходиться сума упакованих десяткових операндів, отриманих будь-якою із команд ADD, ADC, ADI, ACI. Ця команда служить для аналізу змісту тетрад акумулятора і станів прапорців Cy та AC. Як підсумок цього аналізу в акумуляторі формується вірний десятковий результат, а прапор Сy відображає значення десяткового переносу. DAA (Decimal adjust accumulator) - неявна адресація додавання в двійково – десятковому коді Якщо значення [A3A2A1A0] > 9H v AC=1, діє на всі біти F то A ß A + 6H, Якщо значення [A7A6A5A4] > 9H v Cy=1, то A ß A + 60H. Зауваження: команда використовується для одного байту і здійснюється лише над акумулятором. Завдання: нехай необхідно додати два рядки, кожен з яких складається із шести десяткових цифр 376529 + 224388 = 600917 В пам’яті вони розміщені наступним чином (ADDR1) = 3 – лічильник, (ADDR2) = 29H, (ADDR2+1) = 65H, (ADDR2+2) = 37H - перше число, (ADDR3) = 88H, (ADDR3+1) = 43H (ADDR3+2) = 22H – друге число. Результат розмісти починаючи з адреси ADDR2.
Розглянуті приклади ілюструють наступні особливості програмування на мові асемблера: 1. Майже всі операції обробки даних здійснюються над змістом акумулятору. 2. Програміст повинен передбачити якомога менше звернень до пам’яті. Число звернень можна зменшити, використовуючи посередню адресацію регістрів, а також запам’ятовувати дані в регістрах загального призначення (РЗП). 3. Слід уважно аналізувати вплив команд на стан регістру ознак. 4. За допомогою команди “логічне І” можна обнулити деякі розряди комірки, що дає можливість працювати з даними, які мають довжину меншу довжини комірки. 5. За допомогою команд зсуву можна здійснювати переміщення даних із одних розрядів в інші з метою як обробки, так і економії часу. 6. Кожна програма складається із блоків встановлення початкових значень (ініціалізації), обробки і керування циклами. ЕОМ виконує блок ініціалізації один раз перед входом в цикл. Блок керування циклом визначає число повторів циклу. 7. Використання адресних вказівників зменшує число адрес пам’яті процесора. 8. Робота з масивами і організація циклів потребує більшої уваги до всіх деталей. Програміст повинен знати: · вірність завдання початкових значень (ініціалізація) всіх змінних перед входом в цикл; · вірність завдання адреси в командах посереднього переходу; · вірність вибору умов, що перевіряються в місцях розгалуження; · вірність виконання першого і останнього переходу.
Дата добавления: 2014-01-04; Просмотров: 327; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |