15283

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

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

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

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

Украинкский

2013-06-11

142 KB

5 чел.

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


 

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

28573. Примеры хеш-функций Классификация хеш-функций 13.05 KB
  На бесключевые хешфункции накладываются определенные условия. Предполагается что на вход подано сообщение состоящее из байт хеш которого нам предстоит вычислить. Эту операцию называют проверка хеша hashcheck.
28574. Примеры хеш-функций: применение хеш-функций в системах ЭЦП; хеш-функции с ключом 12.72 KB
  Чтобы избежать этого вместе с цифровой подписью используется хешфункция то есть вычисление подписи осуществляется не относительно самого документа а относительно его хеша. В этом случае в результате верификации можно получить только хеш исходного текста следовательно если используемая хешфункция криптографически стойкая то получить исходный текст будет вычислительно сложно а значит атака такого типа становится невозможной. Также существуют другие преимущества использования хешфункций вместе с ЭЦП: Вычислительная сложность.
28575. Примеры хеш-функций sha 12.54 KB
  Для входного сообщения длина которого меньше 264 бит алгоритм SHA1 выдаёт 160битовый результат. Предназначен SHA1 для использования вместе с алгоритмом цифровой подписи DSA. Цифровая подпись формируется на основе дайджеста SHA1 от сообщения что повышает эффективность процесса подписания.
28578. Сертификаты открытых ключей. Аннулирование сертификатов 20.88 KB
  Сертификаты открытых ключей. Механизмы контроля использования ключей. Подтверждение подлинности ключей Сертификат открытого ключа сертификат ЭЦП сертификат ключа подписи сертификат ключа проверки электронной подписи согласно ст. Предположим что Алиса желая получать зашифрованные сообщения генерирует пару ключей один из которых открытый она публикует какимлибо образом.
28579. Требования к качеству ключевой информации и источники ключей 16.09 KB
  Не все ключи и таблицы замен обеспечивают максимальную стойкость шифра. Исчерпывающий ответ на вопрос о критериях качества ключей и таблиц замен ГОСТа если и можно получить то только у разработчиков алгоритма. Очевидно что нулевой ключ и тривиальная таблица замен по которой любое значение заменяется но него самого являются слабыми. Таблица замен является долговременным ключевым элементом т.
28580. Криптоанализ 12.62 KB
  В частности полнораундовый алгоритм ГОСТ 2814789 может быть вскрыт с помощью дифференциального криптоанализа на связанных ключах но только в случае использования слабых таблиц замен. 24раундовый вариант алгоритма в котором отсутствуют первые 8 раундов вскрывается аналогичным образом при любых таблицах замен однако сильные таблицы замен делают такую атаку абсолютно непрактичной. [править] Критика ГОСТа Основные проблемы ГОСТа связаны с неполнотой стандарта в части генерации ключей и таблиц замен. Тривиально доказывается что у ГОСТа...
28581. Проблемы генерации и распространения ключей. Конфигурации сетей связи 14.3 KB
  Можно выделить несколько этапов жизни ключевой информации: n Изготовление n Доставка потребителям n Утилизация n Уничтожение Мы рассматривали в основном утилизацию ключей то есть их использование в алгоритмах шифрования. Рассмотрим теперь процедуры изготовления и доставки ключей абонентам они называются генерацией и распространением соответственно. Правила генерации распространения утилизации и уничтожения ключей называются ключевой системой.