15284

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

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

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

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

Украинкский

2013-06-11

149 KB

5 чел.

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


 

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

4983. Экономика нефтяной и газовой промышленности. Конспект лекций 706.5 KB
  В данном учебном пособии излагаются методические подходы к выделению отраслевого товарного рынка, его границ, а также методы определения концентрации и рыночной власти продавцов-производителей нефтегазовой промышленности на товарном рынке. ...
4984. Прогнозирование производства продукции скотоводства в племенном репродукторе ОНО Архангельская опытно-мелиоративная станция 488.5 KB
  Товарное хозяйство на 200 голов крупного рогатого скота черно-пестрой породы. Валовой надой на корову – 4500 кг с жирностью 3.8 %. Средняя живая масса коров – 500 кг. Выход телят на 100 коров составляет 80 %. Применяется стойлово-пастбищна...
4985. Логіка. Навчальний посібник 580 KB
  Навчальна дисципліна Логіка навчає основам формальної логіки, яка досліджує основні форми мислення: поняття, судження, умовивід. Вона має на меті навчити студентів правильно мислити, запобігати помилковим судженням і умовиводам забезпечувати...
4986. Атомная физика. Физика твердого тела. Квантовая физика 689 KB
  Атомная физика. Физика твердого тела. Квантовая физика. В этом разделе мы рассмотрим явления, связанные с взаимодействием света с веществом: тепловое излучение, фотоэффект и эффект Комптона. Закономерности этих явлений хорошо объясняются только на о...
4987. Расчет и конструирование узла шарнирного механизма 102 KB
  Расчет и конструирование узла шарнирного механизма. Исходные данные: Выбор материала детали. В качестве материала пальца выбираем сталь 45. Материал проушин назначаем сталь 15. Материал стали...
4988. Экология Предмет и задачи экологии. 317 KB
  Экология Предмет и задачи экологии. Существование человека неразрывно связано с определенными условиями среды (температура, влажность, состав воздуха, качество воды, состав пищи и другие). Эти требования вырабатывались в течение многих тысячелетий с...
4989. Разработка привода - редуктор цилиндрического. 349.99 KB
  Введение Согласно заданию требуется разработать привод ленточного транспортера, состоящий из электродвигателя, клиноременной передачи и двухступенчатого цилиндрического зубчатого редуктора. Требуется выбрать электродвигатель, рассчитать зубчатые пер...
4990. Основы надежности и технические измерения 451 KB
  Цели и задачи теории надежности. Современное развитие техники характеризуется разработкой и эксплуатацией изделий, представляющих собой сложные технические системы и комплексы. Важным свойством таких систем является надёжность. Надежность ...
4991. Организация деятельности сельскохозяйственных потребительских кооперативов в сфере жилищно-коммунального хозяйства Пензенской области 950.5 KB
  Что такое сельскохозяйственный потребительский кооператив по ЖКХ? Кооперация (от лат. cooperatio - сотрудничество) – это добровольное объединение (или совокупность объединений) людей – крестьян, рабочих, служащих, мелких производителей и с...