15283

Технологія та прийоми програмування мовою Асемблер

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

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

Лабораторна робота № 9 Тема: Технологія та прийоми програмування мовою Асемблер. Мета роботи: Набути навичок роботи з масивами при програмуванні мовою Асемблера. Навчитися описувати одновимірні масиви в програмі; ініціювати масив; орган...

Украинкский

2013-06-11

142 KB

3 чел.

PAGE  3

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

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

  •  Мета роботи: Набути навичок роботи з масивами при програмуванні мовою Асемблера. Навчитися описувати одновимірні масиви в програмі; ініціювати масив; організувати доступ до елементів масиву; організувати виконання типових операцій з масивами.

  

  1.  Короткі теоретичні відомості

Дамо формальне визначення: масив – структурований тип даних, що складається з деякого числа елементів одного типу.

Для того, щоб обробляти масиви за допомогою асемблерних програм, треба вирішувати наступні задачі:

  •  опис масиву в програмі;
  •  ініціалізація масиву, тобто задавання початкового значення його елемента;
  •  організація доступу до елементів масиву;
  •  організація виконання типових операцій з масивами.

Спеціальних засобів опису масивів в асемблері немає. Для опису масиву можуть використовуватися директиви опису даних. Елементи масиву перераховуються і розділяються комами. Наприклад, масив з п’яти елементів, кожний з яких представлений байтом можна описати наступним чином:

mas db 1,2,3,4,5.

Інший спосіб – застосування оператора повторення dup:

mas dw 5 dup (0).

Приведений запис резервує п’ять комірок пам’яті розмірністю «слово» (16 біт кожна) під масив, які заповнюються нулями.

Якщо масив розглядати як одновимірний, то доступ до елементів масиву забезпечується наступним чином:

база + (індекс*розмір елемента).

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

  1.  Використовуючи середовище емулятора МП і8086, створити і налагодити проект асемблерної програми відповідно до індивідуального завдання за нижченаведеним шаблоном програми:

Масив у байтах

Масив у словах

Примітка

ORG 100h

mov i, 0

mov cx, m

mov si, 0

go:

mov bh, i

mov mas[si], bh

inc i

inc si

dec cx

jnz go

mov si, n1

mov al, mas[si]

mov si, n2

mov mas[si], al

ret

mas db m dup(0)

i db 0

ORG 100h

mov i, 0

mov cx, m

mov si, 0

go:

mov bx, i

mov mas[si], bx

inc i

add si, 2

dec cx

jnz go

mov si, n1

mov ax, mas[si]

mov si, n2

mov mas[si], ax

ret

mas dw m dup(0)

i dw 0

  1.  Використовуючи середовище емулятора скласти лістинг програми (табл..1)

Таблиця 1 Лістинг програми

Зміщення

Код (Hex)

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

К-сть байт

Коментар

100

C7

MOV w.[00136H], 0000

6

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

101

06

102

36

Молодший байт адреси

103

01

Старший байт адреси

104

00

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

105

00

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

106

01

MOV CX, 0004H

3

Запис числа 4h в CX

107

04

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

108

00

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

109

10A

10B

10C

10D

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


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

№ кроку

IP

Команда

SI

BX

CX

AX

Адреси елементів масиву

і

Коментар

H

L

H

L

H

L

012E

0130

0132

0134

0136

0

100

MOV w.[00136H], 0000

0000

00

38

00

00

0000

0000

0000

0000

0000

1

106

MOV CX, 0004H

0000

00

38

00

00

00

00

00

00

00

2

MOV SI, 0000

0000

00

04

00

00

00

00

00

00

00

3

4

5


  1.  Зафіксувати стан прапорців до і після виконання команди порівняння операндів. Результати занести в табл..2.

C

Z

S

O

P

A

D

0

0

0

0

0

0

0

0

1

0

0

1

0

0

  1.  Використовуючи функціональні можливості емулятора, проаналізувати алгоритми виконання команд, що використані в програмі.
    1.  Інтерпретувати зміни стану регістрів загального призначення, сегментних регістрів та регістра стану (прапорців) МП при виконанні команд.

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

Таблиця 3 Варіанти індивідуальних завдань

№ варіанту

m

Тип елементів масиву

Значення елементів масиву

n1

n2

1

3

db

і=0 (інкремент)

2

3

2

4

dw

і=10 (інкремент)

3

1

3

5

db

і=20 (декремент)

4

5

4

3

dw

і=0 (інкремент)

1

3

5

4

db

і=10 (інкремент)

4

2

6

5

dw

і=20 (декремент)

5

3

7

3

db

і=0 (інкремент)

1

2

8

4

dw

і=10 (інкремент)

2

3

9

5

db

і=20 (декремент)

1

4

10

3

dw

і=0 (інкремент)

3

1

11

4

db

і=10 (інкремент)

1

4

12

5

dw

і=20 (декремент)

5

1

13

3

db

і=0 (інкремент)

2

1

14

4

dw

і=10 (інкремент)

4

1

15

5

db

і=20 (декремент)

5

2

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

  1.  Увійти в середовище емулятора Emu8086.
    1.  Створити новий проект типу “com” під власним іменем.
    2.  У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання .
    3.  Скомпілювати створений проект.
    4.  Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
    5.  Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2…2.6, використовуючи покроковий режим роботи емулятора.
    6.  В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми. Слідкувати за зміною значень прапорців в регістрі стану.
    7.  Проаналізувати алгоритми роботи використаних команд.
    8.  Звернути увагу на індексацію елементів масиву.

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

  1.  Назва теми.
    1.  Мета роботи.
    2.  Індивідуальне завдання.
    3.  Лістинг програми відповідно до п.2.2 з відповідними коментарями.
    4.  Заповнити табл..2 результатів досліджень відповідно до п.2.3. 
    5.  Результати перевірки правильності доступу до всіх елементів масиву відповідно до п.2.4.
    6.  Алгоритми виконання основних команд відповідно до п.2.5.
    7.  Інтерпретація вмісту регістрів відповідно до п.2.6.
    8.  Висновки, в яких звернути увагу на особливості виконання застосованих в програмі команд.

  1.  Контрольні запитання

  1.  Яким чином описується одновимірний масив у асемблерній програмі?
    1.  Як забезпечується доступ до елементів одновимірного масиву?
    2.  Яким чином забезпечується ініціалізація елементів масиву?
    3.  Яким чином забезпечується індексація елементів одновимірного масиву?

  1.  Джерела інформації

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


 

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

17593. Статистические методы измерения взаимосвязей 259 KB
  14 ТЕМА 5 Статистические методы измерения взаимосвязей. ПЛАН ЛЕКЦИИ 1. Виды взаимосвязей между явлениями. 2. Метод аналитического группирования. Дисперсионный анализ. 3. Корреляционно регрессионный анализ. 4. Многофакторная корреляция. 5. Непарам...
17594. Ряды динамики. Определение тенденции развития. Интерполяция и экстраполяция 350 KB
  11 Лекция 6. Ряды динамики ПЛАН ЛЕКЦИИ 1. Понятие и виды рядов динамики. 2. Характеристики рядов динамики. 2.1. Показатели интенсивности изменения уровней ряда динамики 2.2. Средние показатели ряда динамики 3. Определение тенденции развития. Интерпол
17595. Индексы. Использование индексного метода при анализе среднего курса акций 258.5 KB
  ТЕМА 7 Индексы ПЛАН ЛЕКЦИИ 1. Понятие индексов. Индивидуальные и сводныеобщие индексы. 2. Агрегатные индексы. 3. Среднеарифметический и среднегармонический индексы. 4. Система взаимосвязанных индексов факторный анализ. 5. Индексы средних величин. 6. Использовани...
17600. Облік та аналіз зовнішньоекономічної діяльності 554.5 KB
  Облік та аналіз зовнішньоекономічної діяльності Лекція 1. ПРЕДМЕТ ЗАВДАННЯ ЗАГАЛЬНОТЕОРЕТИЧНІ І СПЕЦИФІЧНІ ОСНОВИ ДИСЦИПЛІНИ План Предмет курсу. Основні завдання та задачі. Нормативноправове забезпечення бухгалтерського обліку зовнішньоекономічної
17601. Экономика и организация малого бизнеса 3.95 MB
  Экономика и организация малого бизнеса: курс лекций Лекция 1. Предпринимательство: сущность функции принципы деловые качества 1.1.Сущность и функции предпринимательства его отличие от других видов деятельности. 1.2. Исторические предпосылки и основы предпринимате...