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


 

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

30638. Интерьер как средство характеристики героя 18.61 KB
  Интерьер его домика состоящего из шести крошечных комнат говорит о том что перед нами маленький человек очевидно небогатый который не претендует на значимость любит уют. И действительно толстоногий стол заваленный почерневшими от старинной пыли бумагами говорит о том что Василий Иванович занимается работой но делает это время от времени. О том что Василий Иванович интересуется естественными науками и физическими опытами говорит сломанная электрическая машина но это увлечение осталось в прошлом так как она до сих...
30639. «Испытание любовью» как средство характеристики героя в произведениях отечественной классики 19 века 14.36 KB
  Но можем сказать что испытание любовью открыло насколько изменился Онегин.Ещё одним героем прошедшим через испытание любовью является Печорин Лермонтова Герой нашего времени. В таких случаях жизнь мстит за себя: в крепости Печорин пытается заглушить тоску сердца любовью к дикарке Бэле но очень скоро убеждается в бесплодности своих усилий.
30640. Стихотворение М.Ю. Лермонтова «Родина». (Восприятие, истолкование, оценка.) 15.68 KB
  Лермонтова Родина. Ни в одном произведении Лермонтов не достигал такой поэтической ясности как в стихотворении Родина написанном в 1841 году. Родина отразила целый комплекс народных понятий и представлений сложившихся на протяжении столетий и выявившихся как разум народа в отличие от предрассудков предубеждений мгновенного настроения толпы или тех чувств которые несли на себе печать векового рабства и порабощения. И как богат этот опыт как он многосторонен как утонченно и благородно народное чувство и как велик его разум...
30641. Любовная лирика А.С. Пушкина. Чтение наизусть и анализ одного из стихотворений по выбору учащегося 13.5 KB
  Пушкина. Любовь в поэзии Пушкина это глубокое нравственно чистое и самоотверженное чувство облагораживающее и очищающее человека. Я помню чудное мгновенье одно из самых проникновенных трепетных гармонических стихотворений Пушкина относящихся к любовной тематике. Вновь возрождение чувств в душе поэта вновь прилив жизненных сил вновь приход творческого вдохновения: Душе настало пробужденье: И вот опять явилась ты В этом стихотворении Пушкина любовная тема сочетается с философскими раздумьями поэта о своей жизни о радости...
30642. Своеобразие художественного мира одного из поэтов Серебряного века 15.41 KB
  Символистам и футуристам Гумилев противопоставил акмеизм. Как создатель нового литературного направления, первом десятилетии ХХ века он приобрёл широкую известность. Греческое слово «акме» в переводе означало «цвести» и трансформировалось в программе акмеистов как ясность, простота, утверждение реального в жизни.
30643. Мотив дороги и его философское звучание в произведениях отечественной классики 19 века 15.53 KB
  Образ дороги в этом произведении не выходит на первый план.Образ дороги здесь традиционный символ жизненного пути. Тема дороги путешествия главного героя имеет в поэме несколько функций.
30644. Мотивы преступления и возмездия в произведениях отечественной литературы 13.83 KB
  В ней повествуется о том как некий граф Р слишком равнодушно отнёсся к возможной гибели от его пули главного героя Сильвио. Фуражка Сильвио была прострелена на вершок ото лба право своего выстрела он оставил за собой. Граф больше ценит свою жизнь больше боится возмездия Сильвио. Сильвио прекрасно понимает это поэтому приходит в дом к своему сопернику объясняется с ним при его жене.
30645. Стихотворение Маяковского Нате 14.44 KB
  Ранний лирический герой В. Достоевского Преступление и наказание в котором главный герой Родион Раскольников делит людей на тварей дрожащих и право имеющих.В данном случае лирический герой В. В то же время лирический герой легкораним.
30646. Образ маленького человека 13.58 KB
  Медный всадник это одно из первых произведений где автор пытается описать маленького человека . Пушкин очень ярко описал маленького человека этот человек не только имел свое собственное мнение но и попытался доказать его. Такой стиль речи сам по себе делал человека униженным перед всеми остальными даже равными ему по сословному признаку.