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

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

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

Тема: Конструкція «IF THEN» — вибір шляху. Умовний та безумовний перехід.

Мета: Вивчення структури команд СМР і TEST, JMP,Jx

Задачі: Створювання підпрограм із використанням команд СМР і TEST, JMP,Jx.

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

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

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

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

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

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

Якщо програма не містить інших конструкцій, окрім послідовності елементарних команд, вона називається лінійною.

Рис. 12.1 Послідовна обробка команд

У мовах програмування високого рівня конструкція вибору відома як оператор IF-THEN. Ця конструкція дозволяє вибрати наступну дію з декількох можливих варіантів залежно від виконання певної умови. У мові асемблера механізм вибору реалізований за допомогою команд порівняння умовного і безумовного переходів.

Рис. 12.2 Вибір наступної команди

Команди СМР і TEST використовуються для порівняння двох операндів. Операндами можуть бути як регістри, так і адреси пам'яті, розмір операнда — 8, 16 або 32 біта.

СМР о1, о2

Команда СМР — це скорочення від «compare», «порівняти». Вона працює подібно SUB: операнд о2 віднімається з о1. Результат ніде не зберігається, команда просто змінює регістр ознак. Команда СМР може використовуватися як для порівняння цілих беззнакових чисел, так і для порівняння чисел із знаком.

Команда TEST працює подібно СМР, але замість віднімання вона обчислює порозрядне І операндів. Результат інструкції — змінені прапори регістра ознак. Ми можемо використовувати TEST для перевірки значень окремих бітів в масиві бітів.

Команда безумовного переходу — JMP.

Найпростіший спосіб змінити послідовність виконання команд полягає у використанні команди jmp — так званої команди безумовного переходу. Вона перезаписує покажчик команд (регістр IP або CS), що заставляє процесор «перемкнутися» на виконання команди за вказаною адресою. Формат команди такий:

JMP [тип_перехода] операнд

Команда JMP — аналог конструкції GOTO, яка використовується у високорівневих мовах програмування. Команді потрібно передати один обов'язковий операнд — адресу в пам'яті, з якої процесор повинен продовжити виконання програми. Операнд може бути вказаний явно (безпосереднє значення адреси) або бути регістром загального призначення, в який завантажена необхідна адреса.

Залежно від «відстані» переходи бувають трьох типів: короткі (short), ближні (near) і далекі (far). Тип переходу задається необов'язковим параметром інструкції jmp. Якщо тип не заданий, за умовчанням використовується тип near.

Максимальна «довжина» короткого переходу (тобто максимальна відстань між поточною і цільовою адресою) обмежена. Другий байт інструкції (операнд) містить лише одне 8-розрядне значення, тому цільова адреса може бути в межах від -128 до 127 байтів. При переході виконується знакове розширення 8-розрядного значення і його додавання до поточного значення Е(1Р).

«Довжина» ближнього переходу (near) залежить лише від режиму процесора. У реальному режимі міняється лише значення IP, тому ми можемо «подорожувати» лише в межах одного сегменту (тобто в межах 64 Кб); у захищеному режимі використовується EIP, тому цільова адреса може бути де завгодно в межах 4 Гб адресного простору.

Перехід типа far модифікує окрім IP ще і сегментний регістр CS, який використовується при обчисленні фактичної адреси пам'яті. Тому команда переходу повинна містити нове значення CS.

Умовні переходи — Jx.

Загальний формат команд умовного переходу наступний:

Jx мітка_призначення

Найбільш команди, що часто зустрічаються:

Рис. 12.3 Звідна таблиця команд умовного переходу

Аби краще запам'ятати імена команд, запам'ятаєте декілька англійських слів: equal — рівно, above — більше, below — нижче, zero — нуль, greater — більше, less — менше. Таким чином, JE — Jump if Equal (Перехід, якщо Рівно), JNE — Jump if Not Equal (Перехід, якщо Не Рівно), JA — Jump if Above (Перехід, якщо більше) і так далі.

Приклад: Покажемо беззнакове порівняння CL і AL. Якщо обоє значення рівні, то в регістр BL поміщається значення 1, якщо AL більше, ніж CL, то BL=2, а якщо AL менше CL, то BL=3.

12.4 Структурна схема програми

 

Фрагмент коду:

Приклад: Встановлення прапорця нуля

Приклад: Прапорець нуля не встановлено

Література:

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.004 сек.)