|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРАКТИЧНА РОБОТА №8Тема: Регістри процесора 8086. Мета: Вивчення структури регістрів. Задачі: Робота з сегментними, індексними та базовими регістрами. Обладнання для виконання роботи: 1. Методичні вказівки що до виконання лабораторної роботи; 2. Персональний комп’ютер; 3. Відповідне програмне забезпечення (Windows 98, Microsoft Office 2000, XP, 2003, MS Excel, емулятор типу Emu8086 v2.57). Теоретичні основи: Процесори 8086/8088 мають 14 регістрів, використовуваних для управління програмою, що виконується, для адресації пам'яті і для забезпечення арифметичних обчислень. Кожен регістр має довжину в одне слово (16 біт) і адресується по імені. Біти регістра прийнято нумерувати зліва направо: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Сегментні регістри CS, DS, SS і ES Кожен сегментний регістр забезпечує адресацію 64К пам'яті, яка називається поточним сегментом. Сегмент вирівнюється на границю параграфа і його адресу в сегментному регістрі передбачає наявність справа чотирьох нульових бітів.1. Регістр CS. Регістр сегменту коди містить початкову адресу сегменту коду. Ця адреса плюс величина зсуву в командному покажчику (IP) визначає адресу команди, яка має бути вибрана для виконання. Для звичайних програм немає необхідності робити заслання на регістр CS.2. Регістр DS. Регістр сегменту даних містить початкову адресу сегменту даних. Ця адреса плюс величина зсуву, визначена в команді, вказують на конкретне вічко в сегменті даних.3. Регістр SS. Регістр сегменту стека містить початкову адресу в сегменті стека.4. Регістр ES. Деякі операції над рядками використовують додатковий сегментний регістр для управління адресацією пам'яті. У даному контексті регістр ES пов'язаний з індексним регістром DI. Якщо необхідно використовувати регістр ES, асемблерна програма повинна його ініціалізувати. Регістри загального призначення: AX, BX, CX і DX При програмуванні на асемблері регістри загального призначення є "робочими конячками". Особливість цих регістрів полягає в тому, що можлива адресація їх як одного цілого слова або як однобайтовій частині. Лівий байт є старшою частиною (high), а правий - молодшою частиною (low). Наприклад, двобайтовий регістр CX складається з двох однобайтових: CH і CL, і заслання на регістр можливі по будь-якому з цих трьох імен. Наступні три асемблерні команди засилають нулі в регістри CX, CH і CL, відповідно: MOV CX,00 MOV CH,00 MOV CL,001. Регістр AX. Регістр AX є основним суматором і застосовується для всіх операцій введення-виводу, деяких операцій над рядками і деяких арифметичних операцій. Наприклад, команди множення, ділення і зрушення передбачають використання регістра AX. Деякі команди генерують ефективніший код, якщо вони мають заслання на регістр AX. AX: | AH | AL |2. Регістр BX. Регістр BX є базовим регістром. Це єдиний регістр загального призначення, який може використовуватися як "індекс" для розширеної адресації. Інше загальне вживання його - обчислення. BX: | BH | BL |3. Регістр CX. Регістр CX є лічильником. Він необхідний для управління числом повторень циклів і для операцій зрушення вліво або управо. Регістр CX використовується також для обчислень. CX: | CH | CL |4. Регістр DX. Регістр DX є регістром даних. Він застосовується для деяких операцій ввода/вывода і тих операцій множення і ділення над великими числами, які використовують регістрову пару DX і AX. DX: | DH | DL | Будь-які регістри загального призначення можуть використовуватися для складання і віднімання як 8-мі, так і 16-ть бітових значень. Регістрові покажчики: SP і BP Регістрові покажчики SP і BP забезпечують системі доступ до даних в сегменті стека. Рідше вони використовуються для операцій складання і віднімання.1. Регістр SP. Покажчик стека забезпечує використання стека в пам'яті, дозволяє тимчасово зберігати адреси і інколи дані. Цей регістр пов'язаний з регістром SS для адресації стека.2. Регістр BP. Покажчик бази полегшує доступ до параметрів: даним і адресам переданим через стек. Індексні регістри: SI і DI Обоє індексного регістра можливі для розширеної адресації і для використання в операціях складання і віднімання.1. Регістр SI. Цей регістр є індексом джерела і застосовується для деяких операцій над рядками. У даному контексті регістр SI пов'язаний з регістром DS.2. Регістр DI. Цей регістр є індексом призначення і застосовується також для строкових операцій. У даному контексті регістр DI пов'язаний з регістром ES. Регістр командного покажчика: IP Регістр IP містить зсув на команду, яка має бути виконана. Зазвичай цей регістр в програмі не використовується, але він може змінювати своє значення при використанні відладчика DOS DEBUG для тестування програми. Регістр прапора Дев'ять з 16 бітів регістра прапора є активними і визначають поточний стан машини і результатів виконання. Багато арифметичних команд і команди порівняння змінюють стан прапорів. Призначення бітів прапорів:O (Переповнювання) Вказує на переповнювання старшого біта при арифметичних командах.D (Напрям) Позначає ліве або праве направление пересилки або порівняння строкових даних (даних в пам'яті, що перевищують довжину одного слова).I (Переривання) Вказує на можливість зовнішніх переривань.T (Покроковий режим) Забезпечує можливість роботи процесора в покроковому режимі. Наприклад, програма DOS DEBUG встановлює даний прапор так, що можна покрокове виконання кожній команди для перевірки зміни вмісту регістрів і пам'яті.S (Знак) Містить результуючий знак після арифметичних операцій (0 – плюс 1 - мінус).Z (Нуль) Показує результат арифметических операцій і операцій порівняння (0 - ненульовий, 1 - нульовий результат).A (Зовнішнє перенесення) Містить перенесення з 3-го біта для 8-бітових даних, використовується для спеціальних арифметичних операцій.P (Контроль парності) Показує парність молодших 8-бітових даних (1 - парне і 0 - непарне число).C (Перенесення) Містить перенесення із старшого біта після арифметичних операцій, а також останній біт при зрушеннях або циклічних зрушеннях.При програмуванні на асемблері найчастіше використовуються прапори O, S, Z, і C для арифметичних операцій і операцій порівняння, а прапор D для позначення напряму воперациях над рядками.Література: 1. Белов А. В. Самоучитель по микропроцессорной технике. СПб., Наука и техника. 2003 – 224с. 2. Мікропроцесорна техніка. Підручник /Якименко Ю. І, Терещенко Т. О. таінші/ - 2-ге вид., переробл. та доповн. – К.: ІВЦ «Видавництво «Політехніка»», 2004. – 440 с. 3. Микропроцессорные системы. Под ред. Д. В. Пузанкова. СПб., Политехника. 2002 – 935с. 4. Юров В. Assembler: Практикум. — СПб.: Питер, 2001. Техніка безпеки: Студенти та курсанти, які виконують практичні роботи у лабораторіях, згідно з розкладом занять, повинні виконувати привила техніки безпеки, а саме: 1. заходити у лабораторію тільки з дозволу викладача або завідуючого лабораторією; 2. не приносити до лабораторії легко палких та отруйних речовин; 3. без дозволу викладача або завідуючого лабораторією не вмикати ЄОМ та інші електричні прилади; 4. чітко та своєчасно виконувати накази викладача або завідуючого лабораторією; 5. у разі будь-якого інциденту, негайно доповісти викладачу або завідуючому лабораторією. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |