15276

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

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

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

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

Украинкский

2013-06-11

183.5 KB

17 чел.

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


 

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

10349. Методика индивидуально-дифференцированного подхода в обучении. Понятия обученности и обучаемости, их взаимосвязь 82 KB
  Методика индивидуально-дифференцированного подхода в обучении. Понятия обученности и обучаемости их взаимосвязь. Характеристика трех типов учения П.Я. Гальперин. Различные виды дифференциации в обучении. Психолого-педагогические условия эффективной индивидуализации...
10350. Элективные курсы в профильном обучении, психолого-педагогические условия эффективного использования элективных курсов в различных классах по предмету 55.5 KB
  Элективные курсы в профильном обучении психологопедагогические условия эффективного использования элективных курсов в различных классах по предмету. Современные подходы к образованию предусматривают реализацию принципа вариативности путей форм средств его полу
10351. Понятие о методах, приемах, средствах обучения. Различные подходы к классификации методов обучения 75.5 KB
  Понятие о методах приемах средствах обучения. Различные подходы к классификации методов обучения. Характеристика познавательной деятельности. Социальные и познавательные мотивы учебной деятельности школьников. Особенности формирования познавательных интересов уча...
10352. Методы обучения, активизирующие познавательную деятельность учащихся. Технология организации дидактических игр, групповых дискуссий, учебных диспутов 57.5 KB
  Методы обучения активизирующие познавательную деятельность учащихся. Технология организации дидактических игр групповых дискуссий учебных диспутов. Психологопедагогические снования выбора учителем методов обучения. Под активизацией учебной деятельности понимае...
10353. Методы организации и осуществления учебно-познавательной деятельности учащихся. Словесные, наглядные, практические методы, педагогические требования к ним 71 KB
  Методы организации и осуществления учебнопо-знавательной деятельности учащихся. Словесные наглядные практические методы педагогические требования к ним. Техника общения коммуникативные ошибки в деятельности учителя. Метод обучения способ совместной деятельност...
10354. Сущность, функции, методы и средства контроля и самоконтроля в обучении. Теория П.Я. Гальперина о поэтапном формировании умственных действий 69.5 KB
  Сущность функции методы и средства контроля и самоконтроля в обучении. Теория П.Я. Гальперина о поэтапном формировании умственных действий. Учет и оценка знаний умений и навыков школьников. Технология организации нетрадиционных форм контроля: педагогический мониторин
10355. Понятие о средствах обучения, типология и функции средств обучения. Психологическое обоснование выбора учителем средств обучения 36 KB
  Понятие о средствах обучения типология и функции средств обучения. Психологическое обоснование выбора учителем средств обучения. Средство обучения это материальный или идеальный объект который использован учителем и учащимися для усвоения новых знаний. Основ
10356. Индивидуальная, групповая, фронтальная формы организации обучения предмету, условия их оптимального сочетания 37.5 KB
  Индивидуальная групповая фронтальная формы организации обучения предмету условия их оптимального сочетания. Психологические основы создания гомогенных и гетерогенных групп. Технология организации групповой работы на уроках. Индивидуальная ФОО предполагает чт
10357. Типология и структура урока. Различные формы проведения урока в современной школе 36.5 KB
  Типология и структура урока. Различные формы проведения урока в современной школе. Проектирование урока по предмету как педагогическая задача. Технология подготовки и проведения урока. Существует несколько подходов к классификации уроков каждый из которых отличает...