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


 

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

40565. Расчёт пространственного одноэтажного промышленного здания 1.31 MB
  Расстояние от оси подкрановой балки до оси колоны l1B1hBa75 B1 – размер части кранового моста выступающей за ось рельса 75мм – зазор между краном и колонной l1300100050075=875 мм l1 должен быть кратным 250 мм значит l1=1000 мм Высота сечения нижней части колонны hH=l1a hH= 1000500=1500 мм Пролёт мостового крана lк =l 2 l1 =3000021000=28000 Сечения верхней части колонны назначаем сплошного сечения двутавровым нижней сквозным.8 Тип фермы Пролет фермы L = 300 м Высота фермы H = 315 м Количество панелей верхнего пояса 10...
40567. Качество ПО 586.5 KB
  Эффективность Ошибки анализа необходимого количества ресурсов обычно проявляются только в определенных ситуациях Задачи обеспечения качества Обеспечение качества Измерение оценка качества программы Применение методов повышения качества Повышение качества Обнаружение ошибок и неудовлетворительных мест в программе Исправление ошибок и другие изменения программы Необходимость оценки качества Контроль текущего прогресса Оценка эффективности затрат на повышение качества Выбор наиболее эффективных методов повышения качества Основа...
40568. Управление приложением пользователя 4.61 MB
  Для организации эффективной работы пользователя целесообразно создать целостное приложение предметной области, в котором все его компоненты должны быть сгруппированы по функциональному назначению. При этом необходимо обеспечить удобный графический интерфейс, чтобы пользователь мог решать задачи
40569. Введение в предмет АИС 29 KB
  Н 3 курс дисциплина АИС Занятие № 1 Тема: Введение в предмет АИС 1. Задачи АИС АИС являются широко распространенными в настоящее время развития общества когда информатика информационные технологии компьютеры сопровождают человека во всех сферах деятельности. Задачами АИС на данном этапе развития являются: изучение современных методов и средств проектирования информационных систем...
40570. Работа с данными таблицы 678 KB
  Достаточно часто возникает необходимость быстрого нахождения и редактирования заданных записей в больших массивах информация. Для этого важно быстро выбрать по некому шаблону записи и отсортировать их. Данная задача решается с помощью фильтрации записей в режиме таблицы или формы.
40571. СТРУКТУРА АИС 59.5 KB
  3курс дисциплина АИС Занятие №3 Тема: СТРУКТУРА АИС Типы обеспечивающих подсистем Структуру информационной системы составляет совокупность отдельных ее частей называемых подсистемами. Подсистема это часть системы выделенная по какомулибо признаку. Общую структуру информационной системы можно рассматривать как совокупность подсистем независимо от сферы применения. В этом случае говорят о структурном признаке классификации а подсистемы называют обеспечивающими.
40572. Классификация автоматизированных информационных систем 58 KB
  В файлсерверных ИС база данных находится на файловом сервере а СУБД и клиентские приложения находятся на рабочих станциях. В клиентсерверных ИС база данных и СУБД находятся на сервере а на рабочих станциях находятся клиентские приложения. twotier ИС всего два типа звеньев: сервер баз данных на котором находятся БД и СУБД bckend и рабочие станции на которых находятся клиентские приложения frontend. Типичный пример применения многозвенности современные вебприложения использующие базы данных.
40573. ВАРИАНТ ОПРЕДЕЛЕНИЯ НАПРЯЖЕННО-ДЕФОРМИРОВАННОГО СОСТОЯНИЯ УПРУГОГО ТЕЛА КОНЕЧНЫХ РАЗМЕРОВ С ТРЕЩИНОЙ 1.75 MB
  Рассмотрена задача о нахождении напряженно-деформированного состояния (НДС) в поврежденном трещиной теле конечных размеров. Трещина моделируется физическим разрезом с характерной толщиной и материальным слоем на его продолжении. Напряженное состояние слоя описывается средними по толщине и граничными напряжениями, связанными условиями равновесия