15276

Основи програмування мовою Асемблер

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота № 1 Тема: Основи програмування мовою Асемблер. Мета роботи: Вивчити функціональні можливості середовища емулятора Emu8086. Набути навичок зі складання та налагодження програм мовою асемблер з використанням середовища емулят...

Украинкский

2013-06-11

183.5 KB

16 чел.

PAGE  4

Лабораторна робота № 1

Тема: Основи програмування мовою Асемблер.

Мета роботи: Вивчити функціональні можливості середовища емулятора Emu8086. Набути навичок зі складання та налагодження програм мовою асемблер з використанням середовища емулятора. Набути навичок з моделювання роботи програм з використанням емулятора мікропроцесора і8086.

  1.  Короткі теоретичні відомості
    1.  Емулятор мікропроцесора і8086

Програмний емулятор Emu8086 поєднує в собі редактор вихідних текстів асемблерних програм, компілятор, програмний емулятор (віртуальний ПК) з функцією покрокового виконання програми. Візуальний інтерфейс дозволяє відображати вміст регістрів, прапорців і пам'яті під час виконання вашої програми. Арифметико-логічний пристрій (АЛП) показує внутрішню роботу центрального процесора (CPU).

На рис.1 представлено вікно текстового редактора програм з відповідним меню.

Рисунок 1 Вікно текстового редактора програм

Програма на мові Асемблер представляє собою сукупність речень, кожне з яких займає окремий рядок коду програми.

Речення, що складають програму, можуть представляти собою синтаксичну конструкцію, що відповідає команді, макрокоманді, директиві або коментареві:

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

В прикладі на рис.1 рядки 01, 03, 07, 10,16, 19 містять коментарі, рядки 05, 11…13 містять директиви, а рядки 08 і 17 – команди.

На рис.2 показано вікно емулятора з відображенням вмісту регістрів (віконечка зліва), вмісту пам’яті МП і8086 (вікно по центру)  і результату дизасемблювання команд (вікно зправа).

Рисунок 2 Вікно емулятора з відображенням вмісту регістрів

і пам’яті МП і8086

На рис.3 показані вікна, що відображають вміст стекової пам’яті та стан прапорців регістра стану МП і8086.

Рисунок 3 Вікна, що відображають вміст стекової пам’яті та стан прапорців регістра стану МП і8086

Прапорці мають наступні позначення:

  •  С  Carry Flag – прапорець перенесення/позики. Встановлюється при виході результату додавання (віднімання) беззнакових операндів за межу діапазону;
  •  Z  Zero Flag – прапорець нульового результату. Встановлюється при отриманні нульового результату операції;
  •  S Sign Flagпрапорець знаку. Дублює значення старшого біту результату. S=0 для додатних чисел і S=1 – для відємних чисел;
  •  O Overflow Flag – прапорець переповнення. Встановлюється при виході знакового результату за межі діапазону$
  •  P Parity Flag – прапорець паритету (парності). Встановлюється при непарному числі одиниць результату;
  •  A Auxilary Flag – прапорець допоміжного перенесення/позики з молодшої тетради в старшу (з розряду D3 в розряд D4). Використовується при десятковій арифметиці;
  •  I Interrapt-enable Flagпрапорець дозволу переривань. При IF=1 дозволяється виконання маскованих апаратних переривань;
  •  D Direction Flag – прапорець керування напрямом у рядкових операціях. При DF=1 індексні регістри SI, DI, що беруть участь у рядкових операціях, автоматично декрементуються на кількість байтів операнду, при DF=0 – інкрементуються.
    1.  Порядок роботи з емулятором Emu8086

Запустіть емулятор, вибравши піктограму Emu8086 в меню "Пуск" або на робочому столі. Після запуску емулятора відкривається вікно редактора. Зайдіть у папку Samples (шлях: File-Semples) і виберіть будь-який приклад програми. Натисніть кнопку “Compile” в меню. У вікні «Зберегти як» наберіть власне ім’я і натисніть кнопку «Зберегти». Файл буде збережено у папці «My Build» і ви можете працювати з вибраним прикладом програми як зі створеною власноруч. У вікні “Compiler Status”, що відкриється після збереження файлу, натисніть кнопку “Emulate”. У меню вікна емулятора, що відкриється, натисніть кнопку “Run”. У цьому режимі програма виконується автоматично, а між виконанням окремих команд має місце часова затримка, тривалість якої можна змінювати повзунком, що розташований зправа в меню. Повторний запуск програми здійснюється натисканням кнопки “Reload”. Покрокове виконання програми забезпечується натисканням кнопки “Single Step”.

  1.  Створення власного проекту

Відкрийте вікно редактора. Виберіть тип створюваного файлу “Com Template” (шлях: File-New). Перед вами відкриється вікно редактора з заголовком вибраного типу файлу. Директива ORG 100” вказує на початкову адресу створюваної програми в оперативному запам’ятовуючому пристрої комп’ютера. Наберіть текст власної програми. Натисніть кнопку “Save” в меню редактора. У вікні «Зберегти як» наберіть власне ім’я і натисніть кнопку «Зберегти». Файл буде збережено у папці «My Sourse». Наступний крок – компілювання вихідного текстового файлу – натисніть кнопку “Compile”. У вікні «Зберегти як» вам буде запропоновано надати проекту імя, яке ви присвоїли текстовому файлу вашої програми. Для підтвердження цього натисніть кнопку «Зберегти». Файл буде збережено у папці «My Build» і запуститься компілятор, який після завершення процесу компілювання видасть повідомлення у вигляді вікна, що представлено на рис.4.

Рисунок 4  Вікно повідомлення компілятора про завершення процесу компілювання вихідного текстового файлу

 У випадку виявлення помилок про їх характер буде повідомлено у нижньому полі вікна. Після виправлення помилок процес компілювання необхідно повторити. У випадку успішного завершення процесу компілювання можна переходити до процедури тестування створеної програми за допомогою емулятора. Запуск емулятора можна здійснити тут же з вікна компілятора натисканням кнопки Emulate”.

  1.  Постановка завдання

  1.  Використовуючи середовище емулятора Emu8086, відтворіть процес компілювання і моделювання роботи асемблерної програми на основі прикладу програми Binary, Hex and Octal Values”, взятої з папки Samples. Опишіть послідовність виконуваних операцій при дослідженні прикладу програми, взятої з папки Samples.
    1.  Створіть проект асемблерної програми відповідно до індивідуального завдання. Скомпілюйте створену програму і змоделюйте її роботу за допомогою емулятора Emu8086. Опишіть послідовність виконуваних операцій при створенні, компілюванні і дослідженні власної програми.
    2.  Використовуючи середовище емулятора складіть опис створеної програми відповідно до табл..1.

Таблиця 1 Опис програми

Зміщення

Код (Hex)

Мнемокод команди

К-сть байт

Коментар

0100

B8

MOV AX, 0000h

3

Код операції – запис числа 0 в акумулятор

0101

00

Молодший байт операнду

0102

00

Старший байт операнду

0109

B0

MOV AL, 015h

2

Код операції – запис числа 0 в регістр AL

010A

15

Операнд

  1.  Використовуючи покроковий режим роботи емулятора, проаналізуйте хід виконання створеної програми. Заповніть табл..2 результатів досліджень.

Таблиця 2 Результати досліджень створеної програми

№ кроку

IP

Команда

DX

CX

BX

AX

Коментар

H

L

H

L

H

L

H

L

1

0100H

MOV AX, 0000h

xx

xx

xx

xx

xx

xx

xx

xx

2

0103H

MOV BX, 0000h

xx

xx

xx

xx

xx

xx

00

00

  1.  На основі виконання п.п.2.1–2.3 проаналізуйте функціональні можливості емулятора Emu8086.

  1.  Варіанти індивідуальних завдань

  1.  Варіанти індивідуальних завдань до даної лабораторної роботи наведені у табл.. 1: використовуючи команду MOV, число, що вказане у другій колонці таблиці, помістити в регістр, що вказаний у третій колонці таблиці, а потім пересилати його з регістра в регістр у порядку їх розташування у наступних колонках таблиці.
    1.  Складання програми розпочніть з наведених нижче команд, що забезпечують очищення регістрів загального призначення, і продовжте відповідно до п.3.1.

mov ax, 00h

mov bx, ax

mov cx, ax

mov dx, ax

Таблиця 1 Індивідуальні завдання до лабораторної роботи №1

№ варіанту

Число

Регістр 1

Регістр 2

Регістр 3

Регістр 4

1

A5H

AH

CL

DH

BL

2

128

AL

CH

DL

BH

3

B1C2H

AX

CX

BX

DX

4

5DH

BL

BH

CL

DH

5

C3H

DH

AL

BH

CL

6

F6D9H

BX

CX

DX

AX

7

250

CH

CL

AL

BH

8

DAH

DH

AH

BL

CL

9

F0H

AL

BL

CH

DL

10

A2D0H

DX

CX

AX

BX

11

64

CL

DL

DH

AL

12

E4H

DL

CH

AL

BH

13

AFH

AH

BH

BL

CH

14

1BH

CL

DL

CH

DH

15

70H

BL

AH

DL

CH

  1.  Методичні вказівки

  1.  Увійти в середовище емулятора Emu8086.
    1.   Відкрити приклад програми Binary, Hex and Octal Values”, взятої з папки Samples.
    2.   Зберегти вибраний приклад програми під власним іменем, скомпілювати і змоделювати роботу програми засобами емулятора як в автоматичному так і в покроковому режимах.
    3.  Створити власний проект програми типу comпід іншим власним іменем відповідно до індивідуального завдання. Скомпілювати і змоделювати роботу створеної програми засобами емулятора.
    4.  В процесі моделювання роботи програм слідкуйте за зміною вмісту регістрів мікропроцесора.

  1.  Зміст звіту

  1.  Назва теми.
    1.  Мета роботи.
    2.  Постановка завдання.
    3.  Опис послідовності виконуваних операцій відповідно до п.п.2.1 і 2.2.
    4.  Табл..1 і табл..2 відповідно до п.п.2.3 і 2.4.
    5.  Відповіді на контрольні запитання.
    6.  Висновки.

  1.  Контрольні запитання
    1.  Яке призначення емулятора  Emu8086?
    2.  Що представляє собою вихідний текст програми, складеної мовою асемблера?
    3.  Що є результатом компілювання вихідного тексту програми?
    4.  На якому етапі виявляються помилки, що можуть мати місце при складанні програми?
    5.  Які режими моделювання роботи програми підтримує емулятор?
    6.  Яку інформацію дозволяє контролювати емулятор в процесі моделювання ходу виконання програми?

  1.  Джерела інформації
    1.  Ю.І. Якименко, Т.О. Терещенко, Є.І. Сокол та ін. Мікропроцесорна техніка: Підручник. – Київ. – ІВЦ «Видавництво «Політехніка». – 2004. – 439 с.
    2.  Юров В., Хорошенко С. Assembler: учебный курс – СПб: Питер Ком, 1999. – 672 с.


 

А также другие работы, которые могут Вас заинтересовать

17701. Шкала електромагнітних хвиль 139.3 KB
  Шкала електромагнітних хвиль Радіохвилями називають електромагнітні хвилі довжина яких у вакуумі більша за. Оптичним випромінюванням світлом називають електромагнітні хвилі довжини яких у вакуумі лежать у діапазоні від до. До оптичного випромінювання від
17702. ДОСЛІДЖЕННЯ РОБОТИ БАЗОВОЇ СХЕМИ ДТЛ 339.5 KB
  Лабораторна робота №3 ДОСЛІДЖЕННЯ РОБОТИ БАЗОВОЇ СХЕМИ ДТЛ Мета роботи: Дослідження роботи базової схеми ДТЛ. 1. Теоретичні відомості. 1.1 Базова схема ДТЛ. Призначення елементів. Базова схема діоднотранзисторної логіки зображена на мал.41. мал. ...
17703. ОСНОВИ ТЕОРІЇ ДЕРЖАВИ І ПРАВА 483.5 KB
  ОСНОВИ ТЕОРІЇ ДЕРЖАВИ І ПРАВА 1. Походження сутність та ознаки держави Відомо що держава існувала не завжди а її утворенню передував первіснообщинний устрій який являв собою стародавній тип колективного виробництва і був результатом слабкості окремої людин...
17704. ОСНОВИ КОНСТИТУЦІЙНОГО ПРАВА УКРАЇНИ 554 KB
  ОСНОВИ КОНСТИТУЦІЙНОГО ПРАВА УКРАЇНИ 1. Поняття предмет і джерела конституційного права України Етимологія слова конституція походить від лат. constitutio устрій установлення. Але ще у Стародавній Греції Арістотелем було сформоване уявлення про конституці...
17705. ОСНОВИ АДМІНІСТРАТИВНОГО ПРАВА УКРАЇНИ 544 KB
  ОСНОВИ АДМІНІСТРАТИВНОГО ПРАВА УКРАЇНИ 1. Управління як об’єкт адміністративного права Адміністративне право об’єктивно взаємопов’язане з таким соціальним явищем як управління. Сам термін від лат. аdministratio управління став універсальним засобом для хар...
17706. ОСНОВИ ФІНАНСОВОГО ПРАВА УКРАЇНИ 354 KB
  ОСНОВИ ФІНАНСОВОГО ПРАВА УКРАЇНИ 1. Фінансове право України: поняття предмет правового регулювання та система Самостійність та особливість фінансового права як галузі права зумовлена наявністю предмета та методу правового регулювання. Фінансове право Ук
17707. ОСНОВИ БАНКІВСЬКОГО ПРАВА УКРАЇНИ 354.5 KB
  ОСНОВИ БАНКІВСЬКОГО ПРАВА УКРАЇНИ 1. Банківське право України: поняття та предмет правового регулювання Банківське право як і кожна інша галузь права має притаманний лише їй предмет і метод. Предметом банківського права є банківська діяльність. Що розумієт...
17708. ОСНОВИ ЦИВІЛЬНОГО ПРАВА УКРАЇНИ 881.5 KB
  ОСНОВИ ЦИВІЛЬНОГО ПРАВА УКРАЇНИ 1. Цивільне право України: поняття предмет правового регулювання та система. Цивільне законодавство Цивільне право це одна з провідних галузей національного права України яка регулює певну групу правових відносин за уча...
17709. ОСНОВИ СІМЕЙНОГО ПРАВА УКРАЇНИ 225.5 KB
  ОСНОВИ СІМЕЙНОГО ПРАВА УКРАЇНИ 1. Поняття сімейного права його принципи та джерела. Сімейне законодавство України Серед різноманітних суспільних відносин урегульованих правом виокремлюють сферу досить складних людських стосунків які засновані на родинн