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


 

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

53477. Жива історія школи 48 KB
  2012 рік Жива історія школи Мета. Познайомити учнів зі сторінками історії школи через спілкування з випускниками вчителями батьками в телестудії. Дорогі гості шановні колеги сьогодні ми зібралися у кабінеті історії з особливої нагоди – відзначити День народження нашої школи. День народження школи – це свято всього села Васильківське а також сіл – Запоріжжя Русаково Куніново Сидоренково.
53478. Ігровий майданчик на уроках української літератури (5 клас) (розділ «Історичне минуле нашого народу») 238.5 KB
  Але є ще в нас орли Та не тут не в цій палаті А в мужицькій простій хаті Запитання. А тут б’ємо в мури вже більше як тиждень мури нітрохи не подаються Що се Якісь чари Запитання. Погляньте: став як дуб І стукає в ворота Змій виглянув з вікна І сипле іскри з рота Запитання. Запитання.
53479. Компетентності як ключ до оновлення змісту історичної освіти 80 KB
  Але справжній процес реформування модернізації змісту освіти – стартував тільки сьогодні: про це свідчить впровадження з 1 вересня 2012 р Державного стандарту початкової загальної освіти на основі якого розроблено навчальні програми для початкової школи підготовлення підручників – і за формою і за змістом – нового покоління. Державний стандарт базової і повної ЗСО – ще один помітний успіх у процесі модернізації освіти. Під стандартами освіти розуміється – система основних параметрів що приймаються за Державну норму...
53480. Менеджмент. Навчально-методичний посібник 536 KB
  Розуміння, знання історії менеджменту визначає можливості його ефективного удосконалення. Знання історії менеджменту має велике значення в формуванні професійної свідомості менеджера, розвиває у нього почуття відповідальності, навички стратегічного та широкомасштабного мислення. Потреба в знаннях історії будь-якої науки виникає на певному етапі розвитку і самої науки і суспільства в цілому.
53481. Діяльність Гая Юлія Цезаря та її значення для історії Рима 238.5 KB
  Римський диктатор Юлій Цезар (12 липня 100 р. — 15 березня 44 р.) став одним з найбільш відомих діячів усесвітньої історії, чиє імя зазвичай повязують з поняттями про велику людину, полководця і політика. Військово-політична і літературна діяльність Цезаря, його неабиякі здібності, нарешті, його яскрава персона притягали і притягають істориків. Історична роль Юлія Цезаря велика і багатогранна
53482. Природні умови Італії та виникнення міста Рима 50.5 KB
  Природні умови Італії та виникнення міста Рима. Виникнення міста Рима та правління царів. Найважливішими містами були Тарент Кротон Фурії. У результаті грецькі міста виявилися беззахисними перед місцевими племенами.
53483. ИТОГИ И УРОКИ ВЕЛИКОЙ ОТЕЧЕСТВЕННОЙ ВОЙНЫ 32 KB
  Залогом победы было единство фронта и тыла сделавшее реальным лозунг военных лет: Все для фронта все для победы Трагическое начало войны поставило перед руководством страны чрезвычайно сложную задачу: переместить в глубокий тыл промышленные предприятия оборудование материальные ценности. На военное положение были переведены все рабочие и служащие: они объявлялись мобилизованными на период войны рабочий день устанавливался в 11 часов при шестидневной рабочей неделе сверхурочные становились обязательными отпуска...
53484. Зарубіжний досвід соціального страхування 84 KB
  Державне соціальне страхування є невідємною складовою соціальної системи будь-який економічно розвиненої країни. Будь-яке держава зацікавлена в тому, щоб у суспільстві не відбувалися соціальні потрясіння, а розвиток країни йшло стабільно і планомірно.
53485. Московське царство за Івана ІV 58 KB
  Московське царство за Івана ІV Мета: ознайомити учнів зі змінами в житті Московського царства в період завершення централізації країни; розглянути основні напрямки внутрішньої і зовнішньої політики Івана ІV; удосконалювати вміння учнів встановлювати причиннонаслідкові зв`язки працювати з історичною картою характеризувати роль історичних діячів. Правління Івана ІV Васильовича 15331584: а прихід Івана ІV до влади; б держава і церква; в реформи Вибраної ради; г зовнішня політика; д опричнина; 1. Перш ніж перейти до розгляду питання...