АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ПРАКТИЧНА РОБОТА №13

Читайте также:
  1. Cамостійна робота студентів
  2. Cамостійна та індивідуальна робота
  3. Cамостійна та індивідуальна робота
  4. Cамостійна та індивідуальна робота
  5. Cамостійна та індивідуальна робота
  6. Cамостійна та індивідуальна робота
  7. Cамостійна та індивідуальна робота
  8. Cамостійна та індивідуальна робота
  9. Cамостійна та індивідуальна робота
  10. II. Індивідуальна робота студентів.
  11. II. Індивідуальна робота студентів.
  12. II.Практична частина

Тема: Організація циклів та підпрограм

Мета: Вивчення алгоритму побудови циклів з умовою, з лічильником, цикл з інверсною умовою; вивчення команд обробки стеку; команди організації підпрограм.

Задачі: складання підпрограм та циклічних програм.

Обладнання для виконання роботи:

1. Методичні вказівки що до виконання лабораторної роботи;

2. Персональний комп’ютер;

3. Відповідне програмне забезпечення (Windows 98, Microsoft Office 2000, XP, 2003, MS Excel, емулятор типу Emu8086 v2.57).

Теоретичні основи:

Циклом називається багатократне повторення послідовності команд до настання вказаної умови.

У мовах програмування високого рівня відомо багато різновидів циклів, у тому числі:

• цикл з лічильником (цикл FOR), що повторюється заздалегідь задана кількість разів;

• цикл з умовою (цикл WHILE), що повторюється до тих пір, поки умова достеменна;

• цикл з інверсною умовою (цикл UNTIL), що повторюється до тих пір, поки умова не стане достеменною.

Цикл з лічильником за допомогою конструкцій IF і GOTO

Перше, з чим потрібно розібратися — це де розмістити змінну управління циклом, тобто лічильник. Лічильник потрібний для того, щоб цикл виконувався не нескінченно, а певна кількість разів. Команда порівняння дозволяє зберігати лічильник або в пам'яті, або в якомусь регістрі загального призначення. Як лічильник (псевдозмінній I) ми використовуватимемо регістр СХ:

LOOP — складна команда, простий запис циклу

Для організації циклу можна використовувати команду LOOP:

LOOP мітка

Подібно до команди MUL, команда LOOP працює з двома операндами. Перший операнд фіксований, і ми не можемо його вказати явно. Це значення регістра СХ. Другий — це адреса цільової мітки циклу. Інструкція LOOP зменшує значення регістра СХ на одиницю і, якщо результат не дорівнює 0, то вона переходить на вказану мітку. Мітка має бути в межах 128 байтів (короткий тип переходу).

Цикл з лічильником і додатковою умовою.

Команди LOOPZ і LOOPNZ

Команда LOOPZ дозволяє організувати цикл з перевіркою додаткової умови.

LOOPZ мітка

LOOPNZ мітка

Команда LOOPZ уточнює умову переходу таким чином: перехід на вказану мітку станеться, якщо СХ не містить нуля і в той же час прапор ZF дорівнює одиниці. Інше ім'я цієї команди — LOOPE. Команда LOOPNZ працює аналогічно, але додаткова умова протилежна: перехід буде виконаний лише якщо СХ не дорівнює 0 і в той же час ZF дорівнює 0. Інше ім'я цієї команди — LOOPNE.

Команди обробки стека

Мікропроцесор має дві команди для роботи із стеком — PUSH і POP. Команда PUSH дозволяє помістити в стек вміст будь-якого 16-регістра або елементу пам'яті. Формат команди наступний:

PUSH О1

Приклад використання:

Інша команда, POP, записує в свій операнд значення вершини стека (останнє збережене в стеку значення). Тип операнда має бути такимже, як в інструкції PUSH (іншими словами, якщо ви помістили в стек 16-розрядний регістр, витягання із стека повинне відбуватися теж в 16 розрядний регістр).

Організовуємо підпрограму

Для виклику підпрограми використовується команда CALL, а для повернення з підпрограми в основну програму — RET. Формат обох команд такий:

Команді CALL потрібно передати всього один операнд — адресу початку підпрограми. Це може бути безпосереднє значення, вміст регістра, пам'яті або мітка.

Наприклад: (Операція ADD змінює значення свого операнда, тому насамперед збережемо його в стеку)

Тепер викличемо нашу підпрограму add_it з аргументами 4 і 8:

Викликаємо переривання

Програмні переривання породжуються по команді INT. Програмні переривання можна розглядати як «переривання на вимогу», наприклад, коли викликаємо підпрограму операційної системи для виведення рядка символів. У випадку з програмним перериванням ви самі визначаєте, яке переривання буде викликано в той або інший момент.

Команді INT потрібно передати всього один 8-бітовий операнд, який задає номер потрібного переривання.

INT ор

Апаратні переривання викликаються апаратними засобами комп'ютера, підключеними до загальної шини (ISA або PCI). Пристрій, що запрошує переривання, генерує так званий запит на переривання (IRQ, interrupt requests). Всього існує 16 апаратних запитів на переривання, оскільки лише 16 провідників в шині ISA виділено для цієї мети.

Повернення з обробника переривання здійснюється за допомогою команди IRET, яка відновлює вихідні значення ІР, CS і прапорів із стека. Формат команди:

IRET

Команду INT можна реалізувати самостійно за допомогою команд PUSHF і CALL far:

Література:

1. Белов А. В. Самоучитель по микропроцессорной технике. СПб., Наука и техника. 2003 – 224с.

2. Мікропроцесорна техніка. Підручник /Якименко Ю. І, Терещенко Т. О. таінші/ - 2-ге вид., переробл. та доповн. – К.: ІВЦ «Видавництво «Політехніка»», 2004. – 440 с.

3. Микропроцессорные системы. Под ред. Д. В. Пузанкова. СПб., Политехника. 2002 – 935с.

4. Юров В. Assembler: Практикум. — СПб.: Питер, 2001.

Техніка безпеки:

Студенти та курсанти, які виконують практичні роботи у лабораторіях, згідно з розкладом занять, повинні виконувати привила техніки безпеки, а саме:

1. заходити у лабораторію тільки з дозволу викладача або завідуючого лабораторією;

2. не приносити до лабораторії легко палких та отруйних речовин;

3. без дозволу викладача або завідуючого лабораторією не вмикати ЄОМ та інші електричні прилади;

4. чітко та своєчасно виконувати накази викладача або завідуючого лабораторією;

5. у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)