15284

Налагодження програми мовою Асемблер з оброблення двовимірних масивів

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

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

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

Украинкский

2013-06-11

149 KB

4 чел.

PAGE  3

Налагодження програми мовою Асемблер з оброблення двовимірних масивів

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

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

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

  

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

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

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

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

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

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

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

mas dw 5 dup (0).

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

При потребі реалізації двовимірного масиву питання організації масиву повинен вирішувати програміст. З позицій опису даних в асемблері немає різниці між описом одновимірного та двовимірного масиву. Різними будуть правила доступу до елементів масиву.

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

mas db 15 dup (0).

Доступ до елементів даного двовимірного масиву mas[i,j], де i – число стрічок, j – число стовпців може здійснюватися за наступним правилом:

база + і*кількість елементів в стрічці*розмір елемента + j* розмір елемента.

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

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

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

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

Примітка

ORG 100h

mov al, 3

mov i, 1

mul i

mov bx, ax; stroka

mov j, 2

mov si, j; stovpec'

mov ah, array[bx+si]

ret

i db 0

j dw 0

array db 1,2,3,4,5,6

ORG 100h

mov al, 6;6=3*2(3-k-st' elementiv  v strichci, 2-rozmir elementa)

mov i, 1

mul i

mov bx, ax; stroka

mov j, 2

shl j, 1; mnojennia j na 2)

mov si, j; stovpec'

mov dx, array[bx+si]

ret

i db 0

j dw 0

array dw 1,2,3,4,5,6

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

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

Зміщення

Код (Hex)

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

К-сть байт

Коментар

100

101

102

103

104

105

106

107

108

109

10A

10B

10C

10D

10E

10F

110

  1.   Використовуючи покроковий режим роботи емулятора, проаналізувати хід виконання програми для заданого елемента масиву Array[i,j] в табл..3. Заповнити табл..2 результатів досліджень.
    1.   Змінюючи значення i від 0 до (m-1) та j від 0 до (n-1), де m, n – відповідно число стрічок та число стовпців двовимірного масиву, перевірити правильність доступу до всіх елементів масиву.
    2.  Використовуючи функціональні можливості емулятора, проаналізувати алгоритми виконання команд, що використані в програмі.
    3.  Інтерпретувати зміни стану регістрів загального призначення, сегментних регістрів та регістра стану (прапорців) МП при виконанні команд.


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

№ кроку

IP

Команда

SI

DX

ВX

AX

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

і

Коментар

H

L

H

L

H

L

0

100

1

2

3

4

5


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

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

№ варіанту

Розмір масиву

mxn

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

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

Array[i,j]

Примітка

1

2х3

db

1,2,3,4,5,6

[1,2]

2

2х3

dw

1,2,3,4,5,6

[1,2]

3

3х2

db

1,2,3,4,5,6

[2,1]

4

3х2

dw

1,2,3,4,5,6

[2,1]

5

2х4

db

1,2,3,4,5,6,7,8

[1,3]

6

2х4

dw

1,2,3,4,5,6,7,8

[1,3]

7

4х2

db

1,2,3,4,5,6,7,8

[3,1]

8

4х2

dw

1,2,3,4,5,6,7,8

[3,1]

9

2х3

db

Ah,bh,ch,dh,eh,fh

[1,1]

10

2х3

dw

Ah,bh,ch,dh,eh,fh

[1,1]

11

3х2

db

Ah,bh,ch,dh,eh,fh

[1,1]

12

3х2

dw

Ah,bh,ch,dh,eh,fh

[1,1]

13

2х4

db

Ah,bh,ch,dh,eh,fh,aah,bbh

[0,2]

14

2х4

dw

Ah,bh,ch,dh,eh,fh,aah,bbh

[0,2]

15

4х2

db

Ah,bh,ch,dh,eh,fh,aah,bbh

[2,0]

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


 

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

553. Истечение жидкости через отверстия и насадки 58 KB
  Произвести визуальное наблюдение за особенностями истечения жидкости через круглое отверстие с острой кромкой, квадратное отверстие и внешний цилиндрический насадок. Определить опытные значения коэффициентов скорости, расхода и гидравлического сопротивления для отверстия и насадка.
554. Проблема личности в Средневековой философии 96.5 KB
  Формирование термина личность в патристике. Главным произведением Аристотеля об ούσία является Метафизика. Отметим, что у Василия Великого впервые в богословской традиции указывается на различие между ούσία и ύπόστασις через существование и количество некоторых не известных признаков.
555. Кодирование и представление информации в ЭВМ 95.5 KB
  Арифметические и логические основы ЭВМ. Системы счисления. Представление данных и их кодирование. Типы данных. Структура данных. Способ представления изображения произвольных чисел с помощью некоторого конечного множества символов.
556. Психологічні особливості творчої діяльності учнів на уроках іноземної мови 2.36 MB
  Дослідження креативного навчання методом психологічного експерименту. Психологічні основи розвитку творчої особистості. Креативний підхід до вивчення іноземної мови. Творча діяльність, її особливості.
557. Производство картофеля в мире 97 KB
  Наибольший ежегодный прирост валового сбора картофеля относительно предыдущих лет. По прогнозам аналитиков, ожидается, что в 2011-2015 гг. продажи картофеля в мире будут расти в среднем на 1,3% в год. Картофель — важный источник пищи, рабочих мест и доходов в развивающихся странах, где за последние 15 лет объем производства увеличился более чем в два раза.
558. Технология постановки задачи для построения информационной технологии (АИТ) 76.5 KB
  Ознакомление с ролью пользователя в постановке задачи создания АИТ и АИС. Определение организационно-экономической сущности задачи создания АИС. Краткое описание предметной области решаемой задачи. Потребители результирующей информации и способы ее отправки и доставки.
559. Утопический социализм 78 KB
  Фантастическое описание будущего строя, условия материальной жизни общества. Утопический социализм и его основные черты. Исторические этапы человеческого общества, Сен-Симон Клод Андри де Рувуа. Будущий общественный строй, Теория страстей Фурье.
560. Становление современной научной картины мира. Движение. Пространство. Время 86.5 KB
  Проблема пространства и времени в истории философии и науке. К диаметрально противоположным утверждениям относительно делимости пространства и времени пришли атомисты. Материя и движение. Абсолютность движения и относительность покоя. Основные типы движения. Понятие развития.
561. Теория развития систем 79.5 KB
  Системные представления в практической деятельности человека. Системность как свойство материи. Эволюция системных представлений. Первая естественнонаучная (механическая) картина мира. Немецкая классическая философия. Теоретическое естествознание XIX-XX веках. Общая теория систем Л. Берталанфи.