15283

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

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

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

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

Украинкский

2013-06-11

142 KB

4 чел.

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


 

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

66535. Управление службой каталога в Windows-сети 91.65 KB
  Разработать структуру локальной вычислительной сети предприятия, в которой используются ОС Windows Server 2003, Windows XP, Windows Vista, Windows 2000 и которая состоит из сервера и трех рабочих станций. С использованием физических и виртуальных машин реализовать разработанную структуру.
66536. Настройка параметров протокола TCP/IP и службы DNS 251.8 KB
  Какие протоколы входят в стек протоколjв TCP IP Какие протоколы входят в стек протоколjв TCP IPВ сетях TCP IP принято различать адреса сетевых узлов трех уровней физический или локальный адрес узла МАС-адрес сетевого адаптера или порта маршрутизатора...
66537. Численное решение задачи Коши для ОДУ 160 KB
  Цель: Решить ОДУ методом Адамса(3-х шаговым неявным) и методом Рунге-Кутта 4-го порядка (классическим). Результаты предоставить графически. Задание 1 Условие: Решить методом Адамса (3-х шаговым неявным). Результат представить графически...
66538. Управление службой каталога в Windows-сети 20.7 KB
  Определены роли пользователей – оператор станции ввода, оператор станции обработки, оператор станции хранения. Для демонстрации ограничений, задаваемых для разных ролей, операторам станции ввода добавлен запрет на чтение ветки...
66539. Исследование мостовых соединений 201 KB
  Оборудование: Беспроводные адаптеры (типа DWL-G132) – по одному на пользователя Точки доступа (типа DWL-2100AP) – 2 штуки Точки доступа (типа DWL-3200AP) – 2 штуки Цель работы: Изучение дополнительных режимов работы WDS и WDS with AP.
66540. Моделі та методи обробки нечітких знань. Нечіткі множини 31.77 KB
  При розробці інтелектуальних систем знання про конкретну предметну область, для якої створюється система, рідко бувають повними й абсолютно достовірними. Навіть кількісні дані, отримані шляхом досить точних експериментів
66541. ДОСЛІДЖЕННЯ ЛІНІЙНОГО РОЗГАЛУЖЕНОГО ЕЛЕКТРИЧНОГО КОЛА СИНУСОЇДНОГО СТРУМУ 600 KB
  Експериментально визначити параметри резистора R, котушки індуктивності (індуктивність L, резистивний опір Rк) та конденсатора С в колі синусоїдного струму. Експериментально дослідити явище резонансу струмів, фазові й енергетичні співвідношення в колі з паралельним з'єднанням котушки індуктивності (з індуктивністю L і резистивним опором
66543. Тестування, логічна організація та форматування HDD 1.57 MB
  Натискаємо клавішу P англ і вибираємо потрібний канал вибір здійснюється стрілочками якщо ви не знаєте який у вас диск вибирайте по черзі. Натискаємо Enter і F2. Якщо не з'явився натискаємо знову P і вибираємо інший канал.