|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРАКТИЧНА РОБОТА №12Тема: Конструкція «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. у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |