15282

Алгоритми функціонування ланцюгових команд та способи формування адреси операнда-джерела і адреси операнда-призначення

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

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

Лабораторна робота № 7 8 Тема: Команди і директиви мови Асемблер. Мета роботи: Засвоїти алгоритми функціонування ланцюгових команд та способи формування адреси операндаджерела і адреси операндапризначення за якими розташовуються ланцюго

Украинкский

2013-06-11

145.5 KB

2 чел.

PAGE  2

Лабораторна робота № 7, 8

Тема: Команди і директиви мови Асемблер.

Мета роботи: Засвоїти алгоритми функціонування ланцюгових команд та способи формування адреси операнда-джерела і адреси операнда-призначення, за якими розташовуються ланцюгові елементи. Набути навичок застосування асемблерних ланцюгових команд. Навчитися застосовувати префікси повторення ланцюгових команд.                                 

 

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

Команди оброблення рядків символів (більш загальна назва – ланцюгові команди) призначені для виконання операцій над блоками пам’яті, що представляють собою послідовності елементів наступних розмірів: байт (8 біт), слово (16 біт), подвійне слово (32 біти). Вміст цих блоків для мікропроцесора не має жодного значення. Це можуть бути символи, числа, а в загальному випадку довільна інформація.

Особливістю всіх ланцюгових команд є те, що вони, крім оброблення текучого елемента ланцюга, здійснюють автоматичний перехід до наступного елемента даного ланцюга.

Ланцюгові команди приведені в методичному посібнику «Система команд МП 8086».

Особливістю ланцюгових команд є те, що вони працюють з визначеними сегментами пам’яті: операнд-джерело знаходиться за адресою DS:[SI], а операнд призначення поміщається за адресою ES:[DI]. Наприклад, команда MOVSB  копіює байт з DS:[SI] до ES:[DI] і коригує вміст SI і DI; команда LODSB завантажує байт з DS:[SI] в AL і коригує SI; команда STOSB зберігає байт, що записаний в AL,  за адресою ES:[DI] і коригує DI.

Крім згаданих команд пересилання даних до числа ланцюгових команд відносяться також команди порівняння: CMPSB (CMPSW), що порівнюють вміст двох комірок пам’яті ES:[DI] і DS:[SI]; SCASB (SCASW), що порівнюють вміст AL(AX) з вмістом комірки пам’яті ES:[DI].

Ще одна група ланцюгових команд – це команди повторення. Розглянуті вище команди забезпечують переміщення чи порівняння одного елемента ланцюга. Команди повторення дозволяють реалізувати багатократне повторення ланцюгових команд і, таким чином, забезпечити оброблення всіх елементів ланцюга. Команди повторення, наприклад команда REP, використовують регістр CX для задавання кількості циклів повторення ланцюгової команди.

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

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

 ORG 100h

CLD

LEA SI, a1

LEA DI, a2

MOV CX, m

REP MOVSB (MOVSW)

LEA SI, a1+n1

LODSB (LODSW)

LEA DI, a2+n2

STOSB (STOSB)

LEA DI, a2+n2

SCASB (SCASW)

RET

a1 DB 1,2,3,4,5

a2 DB 5 DUP(0)

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

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

Зміщення

Код (Hex)

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

К-сть байт

Коментар

100

FC

CLD

1

101

BE

MOV SI, 0119h

3

102

19

103

01

104

BF

MOV DI, 011Eh

3

105

1E

106

01

107

B9

MOV CX, 0005h

3

108

05

109

00

10A

F3

REPE

1

10B

A4

MOVSB

1

10C

BE

MOV SI, 011Bh

3

10D

1B

10E

01

10F

AC

LODSB

1

110

BF

MOV DI, 0122h

.

.

.

  1.  Використовуючи покроковий режим роботи емулятора, проаналізувати хід виконання програми. Заповнити табл..2 результатів досліджень.


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

№ кроку

IP

Команда

SI

DI

CX

AX

Адреси призначення

Коментар

H

L

H

L

011E

011F

0120

0121

0122

0

0100

CLD

0000

0000

00

23

00

00

00

00

00

00

00

1

0101

MOV SI, 0119h

0000

0000

00

23

00

00

00

00

00

00

00

2

0104

MOV DI, 011Eh

0119h

0000

00

23

00

00

00

00

00

00

00

3

0107

MOV CX, 0005h

0119h

011Eh

00

23

00

00

00

00

00

00

00

4

010A

REPE

0119h

011Eh

00

05

00

00

00

00

00

00

00

5

010B

MOVSB

0119h

011Eh

00

05

00

00

00

00

00

00

00

6

010A

REPE

011Ah

011Fh

00

04

00

00

01

00

00

00

00

7

010B

MOVSB

011Ah

011Fh

00

04

00

00

01

00

00

00

00

8

010A

REPE

011Bh

0120h

00

03

00

00

01

02

00

00

00

9

010B

MOVSB

011Bh

0120h

00

03

00

00

01

02

00

00

00

10

010A

REPE

011Ch

0121h

00

02

00

00

01

02

03

00

00

11

010B

MOVSB

011Ch

0121h

00

02

00

00

01

02

03

00

00

12

010A

REPE

011Dh

0122h

00

01

00

00

01

02

03

04

00

13

010B

MOVSB

011Dh

0122h

00

01

00

00

01

02

03

04

00

14

010A

REPE

011Eh

0123h

00

00

00

00

01

02

03

04

05

15

010B

MOVSB

011Eh

0123h

00

00

00

00

01

02

03

04

05

16

010C

MOV SI, 011Bh

011Eh

0123h

00

00

00

00

01

02

03

04

05

17

010F

LODSB

011Bh

0123h

00

00

00

00

01

02

03

04

05

18

0110

MOV DI, 0122h

011Ch

0123h

00

00

00

03

01

02

03

04

05

19

0113

STOSB

011Ch

0122h

00

00

00

03

01

02

03

04

05

20

0114

MOV DI, 0122h

011Ch

0123h

00

00

00

03

01

02

03

04

03

21

0117

SCASB

011Ch

0122h

00

00

00

03

01

02

03

04

03

22

0118

RET

011Ch

0123h

00

00

00

03

01

02

03

04

03


  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

50; 100; 150

2

3

2

4

dw

128; 256; 512; 1024

3

1

3

5

db

8; 16; 32; 64; 128

4

5

4

3

dw

A000h; B000h; C000h

1

3

5

4

db

C0h; D0h; E0h; F0h

4

2

6

5

dw

10A0h; 20B0h; 30C0h; 40D0h; 50E0h

5

3

7

3

db

63; 127; 255

1

2

8

4

dw

1024; 2048; 4096; 8192

2

3

9

5

db

33; 65; 97; 193; 225

1

4

10

3

dw

60F0h; 70E0h; 80D0h

3

1

11

4

db

55h; 33h; AAh; CCh

1

4

12

5

dw

F010h; E020h; D030h; C040h; B050h

5

1

13

3

db

40; 80; 160

2

1

14

4

dw

50A0h; 40B0h; 30C0h; 20D0h

4

1

15

5

db

240; 120; 60; 30; 15

5

2

  1.  Методичні вказівки

  1.  Увійти в середовище емулятора Emu8086.
    1.  Створити новий проект типу “com” під власним іменем.
    2.  У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання .
    3.  Скомпілювати створений проект.
    4.  Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
    5.  Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2…2.6, використовуючи покроковий режим роботи емулятора.
    6.  В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми. Слідкувати за зміною значень прапорців в регістрі стану.
    7.  Проаналізувати алгоритми роботи досліджуваних команд.
    8.  Звернути увагу на застосування команди LEA.

  1.  Зміст звіту

  1.  Назва теми.
    1.  Мета роботи.
    2.  Індивідуальне завдання.
    3.  Лістинг програми відповідно до п.2.2 з відповідними коментарями.
    4.  Результати досліджень команд відповідно до п.2.3.
    5.  Стан прапорців відповідно до п.2.4.
    6.  Алгоритми виконання основних команд відповідно до п.2.5.
    7.  Інтерпретація вмісту регістрів відповідно до п.2.6.
    8.  Висновки, в яких звернути увагу на особливості виконання застосованих в програмі команд.

  1.  Контрольні запитання

  1.  Які типи команд відносяться до групи ланцюгових команд?
    1.  З якими типами даних працюють ланцюгові команди?
    2.  Яким чином формуються адреси джерела і адреси призначення операндів ланцюгових команд?
    3.  Яким чином забезпечується багатократне виконання ланцюгової команди?
    4.  Яке призначення команди LEA?
    5.  Як інтерпретується команда LEA транслятором?

  1.  Джерела інформації

  1.  Ю.І. Якименко, Т.О. Терещенко, Є.І. Сокол та ін. Мікропроцесорна техніка: Підручник. – Київ. – ІВЦ «Видавництво «Політехніка». – 2004. – 439 с.
    1.  Юров В., Хорошенко С. Assembler: учебный курс – СПб: Питер Ком, 1999. – 672 с.


 

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

68646. Численное интегрирование 135 KB
  Кратко изложите сущность метода Симпсона. Выпишите составные формулы прямоугольников трапеций Симпсона. Выпишите погрешности и их оценки составных формул прямоугольников трапеций Симпсона. Вычислить интеграл по формуле Симпсона при и оценить остаточный член.
68647. Введение в элементарную теорию погрешностей 294.5 KB
  Контрольные вопросы и задачи: Дать определение абсолютной погрешности приближенного числа. Дать определение относительной погрешности приближенного числа. Укажите связь абсолютной и относительной погрешностей. Что означает запись: а=2.52(±0.01)? Верна ли запись: а= 3.47((±0.033)?
68649. Применение производных типов данных для решения прикладных задач 92 KB
  Написать программу выполняющую следующие действия: ввод с клавиатуры данных в массив экземпляров структур состоящий из пяти записей; поиск записей в которых средний бал студента больше 40; поиск записей в которых совпадают номера групп студентов. Написать программу выполняющую следующие действия...
68650. Использование функций для работы с массивами 77 KB
  Ведь элементов в массиве могут быть сотни и представляется нереальным хотя и теоретически возможным описать при передаче в функцию каждый элемент массива. Здесь необходимо вспомнить что имя массива является указателем на нулевой элемент массива. А так как элементы массива расположены непосредственно...
68651. Расчет тепловой схемы турбинной установки К-220-44 Ровенской АЭС 4.76 MB
  В данном дипломном проекте поверхностно рассмотрен первый и второй контур первого блока Ровенской АЭС с реактором ВВЭР-440.Приведен расчет тепловой схемы турбинной установки К-220-44 а также теплогидравлический и нейтронно-физический расчет реактора типа ВВЭР-440.
68652. РАСЧЕТ ЯДЕРНОГО РЕАКТОРА ВВЭР-1000 1.01 MB
  В активной зоне реактора она нагревается до 595 0К и направляется в парогенераторы где охлаждается отдавая тепло рабочему телу второго контура. Вода первого контура при работе реактора приобретает высокую наведённую радиоактивность даже без нарушения плотности оболочек ТВЭЛов так как в воде практически...
68653. Разработка математической модели оценки платежеспособности корпоративного заемщика 1.71 MB
  Обзор основных моделей которые применятся в банках для анализа кредитоспособности платежеспособности потенциальных заемщиков. Контрольный пример использования математического аппарата в разработки методики анализа кредитоспособности заемщика. Перечень графических материалов...