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


 

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

72571. ПРАВОВЫЕ ОСНОВЫ СОВЕРШЕНСТВОВАНИЯ СИСТЕМЫ СТРАХОВОЙ ЗАЩИТЫ ИМУЩЕСТВЕННЫХ РИСКОВ В РОССИЙСКОЙ ФЕДЕРАЦИИ 114.5 KB
  Общий объем страховых платежей взносов по всем видам страхования за 2005 г. Доля средств от страхования в валовом внутреннем продукте страны выросла с 16 процента в 1998 г. Активно развивается рынок посреднических и дополнительных услуг в области страхования услуги агентов...
72572. РЕПУТАЦИОННЫЙ ВРЕД КАК ПОСЛЕДСТВИЕ УМАЛЕНИЯ ДЕЛОВОЙ РЕПУТАЦИИ ЮРИДИЧЕСКОГО ЛИЦА 128.5 KB
  В Гражданском кодексе дано детальное определение юридического лица: статья 48 Понятие юридического лица гласит что это организация которая имеет в собственности хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом...
72573. ПРИНЦИПЫ БЮДЖЕТНОГО ПРАВА И ПРОЦЕССА 138 KB
  Последнее обстоятельство особенно важно для налогового права в условиях продолжающейся бюджетной реформы когда еще не выработана общепринятая концепция построения и развития бюджетной системы Российской Федерации не определены на государственном уровне ориентиры бюджетной политики страны.
72574. ЗАВЕЩАНИЕ КАК СПОСОБ РАСПОРЯЖЕНИЯ ИМУЩЕСТВОМ 92 KB
  Тесная взаимосвязь права собственности и наследственного права проявляется в основном в двух обстоятельствах: наследование является одним из оснований приобретения права собственности завещание же как сделка есть один из вариантов реализации правомочия распоряжения являющегося...
72575. ПОНЯТИЕ И КЛАССИФИКАЦИЯ СУБЪЕКТИВНЫХ ПРАВ И СВОБОД И СПОСОБЫ ИХ ОГРАНИЧЕНИЯ 193.5 KB
  Права человека это ценностный ориентир позволяющий применять человеческое измерение не только к государству праву закону законности правовому порядку но и к гражданскому обществу поскольку степень зрелости и развитости последнего зависит в значительной мере от состояния дел...
72576. НЕКОТОРЫЕ ПРОБЛЕМЫ ПРАВОВОГО РЕГУЛИРОВАНИЯ ПОРЯДКА ПРОДАЖИ ПРЕДПРИЯТИЯ КАК ПРОЦЕДУРЫ ВНЕШНЕГО УПРАВЛЕНИЯ 133 KB
  Продажа предприятия одно из наиболее серьезных мероприятий внешнего управления нуждающееся в детальной регламентации. Возможность продажи предприятия предусматривалась и Законом о несостоятельности банкротстве 1998 г.
72578. ПО КАКОМУ ПУТИ РАЗВИВАТЬСЯ КРИМИНОЛОГИИ СЕГОДНЯ? 176.5 KB
  В приведенном тезисе автор выражает свое однозначное отношение к биологическому: если в преступном поведении человека природные качества играют определяющую роль значит он невменяемый т. Ошибка криминологов думается состоит в том что многие из них продолжают отождествлять личность...
72579. ИНСТИТУТ ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ПРАВА СОБСТВЕННОСТИ В ФЕДЕРАЛЬНОМ И РЕГИОНАЛЬНОМ ЗАКОНОДАТЕЛЬСТВЕ 203.5 KB
  В России институт государственной регистрации появился только в постсоветский период (дореволюционный проект Вотчинного Устава, аналога государственной регистрации, так и не был принят). Для сравнения: в европейских странах государственная регистрация как действующая система применялась уже в 1860-х гг.