15276

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

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

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

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

Украинкский

2013-06-11

183.5 KB

19 чел.

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 с.


 

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

67174. Основы теории массового обслуживания 233.5 KB
  Рассмотрим сначала некоторые понятия которые характеризуют стохастическую неопределенность когда неопределенные факторы входящие в задачу представляют собой случайные величины или случайные функции вероятностные характеристики которых либо известны либо могут быть получены из опыта.
67175. КУЛЬТУРА ЗАПАДНОЕВРОПЕЙСКОГО СРЕДНЕВЕКОВЬЯ 115.5 KB
  В условиях сословноиерархической структуры общества пронизанной сверху донизу сословной замкнутостью и отношениями вассального служения сюзерену; в процессе бесконечных войн которые несли голод разрушение смерть и ощущение трагизма человеческой жизни...
67176. Организация разработки требований к сложным программным средствам 139 KB
  Проекты программных средств различаются по уровню сложности масштабу и необходимому качеству. Чаще всего проблемами с которыми встретились не достигшие своих целей проекты программных продуктов являются: недостаток информации от пользователя...
67177. ПОЛИТИЧЕСКАЯ СИСТЕМА И ГОСУДАРСТВО 138.5 KB
  Любое государство функционирует в определенной социальной среде зависит от экономики и культуры общества его структуры психологии и ценностных предпочтений граждан в свою очередь оказывая на них мощное воздействие.
67178. ОБЩИЕ ПРИНЦИПЫ АНЕСТЕЗИОЛОГИИ. ИНГАЛЯЦИОННЫЙ НАРКОЗ 278 KB
  Универсальной и общепризнанной теории действия анестетиков нет. Ранние теории наркоза в настоящее время представляются полностью несостоятельными: Коагуляционная теория Кьюн 1864 коагуляция белка под влиянием эфира и хлороформа обнаружилось что коагуляция происходит только при концентрациях значительно превышающих терапевтические.
67179. Проблеми державного відтворення української культури у 1917-1920 рр. та особливості національно-культурного розвитку українських земель у 1920-1930-х рр. XX століття 133 KB
  Відкриття Української Академії наук УАН. відбулося територіальне роз'єднання українських земель завершилося формування української нації ускладнилася соціальна структура та політизувалося суспільне життя. Ця орієнтація зумовила вивчення проблем етнографії фольклору мови а також стимулювала бажання...
67180. Повернення об’єктів функціями. Потенційні проблеми 74.5 KB
  Якщо об'єкти можна передавати функціям, то з таким самим успіхом функції можуть повертати об'єкти. Щоби функція могла повернути об'єкт, по-перше, необхідно оголосити об'єкт, який повертається нею, типом відповідного класу. По-друге, потрібно забезпечити повернення...
67181. Асиметричні криптоперетворення та їх застосування для забезпечення конфіденційності 240.65 KB
  Найбільшою особливістю асиметричних перетворень є використання асиметричної пари ключів, які містить відкритий ключ, що відомий всім, та особистого ключа, що пов’язаний з відкритим ключем за допомогою певного математичного перетворення.
67182. ПРАВОВОЕ ГОСУДАРСТВО И ГРАЖДАНСКОЕ ОБЩЕСТВО 305.5 KB
  Аристотель выделял два рода правления, один из которых направлен к выгоде правителя, другой — подданных, общества. В них по-разному проявлялась роль права как посредника между человеком и государством. Ясно, что в обществах, где в выгоде находились правители, право в большей мере использовалось в качестве