КАТЕГОРИИ: Архитектура-(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) |
Тема 15. Макрокоманди
Тема 14. Директиви умовного асемблювання Асемблер МП Intel 8080 дозволяє застосовувати умовне асемблювання за допомогою псевдооперацій IF та ENDIF. Синтаксис < ім’я >: IF < вираз > … < ім’я >: ELSE < ім’я >: ENDIF Якщо значення виразу в операторі IF на етапі асемблювання не дорівнює нулю, то асемблер включає в програму оператори, що знаходяться між псевдокомандами IF та ENDIF. Якщо вираз дорівнює нулю, то відповідні оператори в програму не включаються. Приклади: а. CMA; AßĀ INR A; додати 1 для отримання доповненого коду ENDIF Якщо змінна TWOS=0, то асемблер включає також команду CMA, що формує обернений код. Якщо TWOS#0, асемблер включає також команду INR A, виконання якої перетворює обернений код в доповнений. За допомогою однієї й тієї ж асемблерної програми можна виконати арифметичні операції в оберненому або доповненому коді. Вибір режиму здійснюється за допомогою змінної, значення якої встановлюється перед асемблюванням.
б. 8 або 16 – бітне додавання IF L8; 8 – бітне додавання LDA OP1 MOV B,A LDA OP2 ADD B STA RES ENDIF IF L16; 16 – бітне додавання LHLD OP1 XCHG LHLD OP2 DAD D SHLD RES ENDIF
Дана програма дозволяє вибрати 8 або 16 – бітний варіант додавання в залежності від значення змінних L8 і L16. Якщо L8#0 і L16=0, асемблер транслює команди, що реалізують 8 - бітне додавання. Якщо L8=0 і L16#0, то будуть транслюватися команди, що забезпечують додавання 16 - бітних чисел. Програмістам не рекомендується зловживати засобами умовного асемблювання. Їх використання робить програми більш заплутаними та ускладнює їх відлагодження. Краще написати дві окремі програми для двох різних випадків, ніж використовувати складні засоби умовного асемблювання. Засоби умовного асемблювання доцільно використовувати для полегшення відлагодження в початкових варіантах програми.
В МП Intel 8080 є макрозасоби. Макрокоманди можна використовувати для того, щоб ввести зручне позначення для команд, що існують, розширити систему команд, позначити одним оператором цілу сукупність команд. Для кожної макрокоманди необхідно скласти визначення й присвоїти йому унікальне ім’я. Макрокоманди не можуть включати в себе ні визначення інших макрокоманд, ні посилання на самих себе. Разом з тим вони можуть мати посилання на інші макрокоманди. Для опису макрокоманд в МП Intel 8080 використовують псевдооперації MACRO, ENDM. Синтаксис < ім’я > MACRO < список формальних параметрів> Приклади в. CLR MACRO Обнулення А і встановлення Сy=0 SUB A END M Введення за допомогою макрозасобів мнемоніки CLR робить використання цієї команди (SUB A) більш наглядним.
г. Операція NOR (АБО-НІ) NOR MACRO REG ORA REG CMA ENDM
В макрокоманді NOR використовується операнд REG.
При використанні макрозасобів програміст повинен враховувати наступні правила: 1) кожна макрокоманда повинна мати унікальне ім’я; 2) макровизначення повинно починатися з псевдооперації MACRO і закінчуватися псевдооперацією ENDM; 3) імена, що визначенні в макрокоманді, локалізовані в ній і не визначені в головній програмі; 4) макровизначення не повинні включати інших макровизначень.
Дата добавления: 2014-01-04; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |