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


 

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

40746. Наука як сфера людської діяльності 59.51 KB
  Поняття зміст і функції науки Курс: 1 Факультет: 4й медичний Поняття зміст і функції науки Актуальність теми. Необхідність надання загальних відомостей про завдання курсу а також про науку як систему знань і уявлень про сутність науки аналіз змісту та функцій науки диктується вимогами розвитку та становлення сучасної науки і є необхідною передумовою формування наукового світогляду необхідного майбутнім спеціалістам. Цілі лекції мета Навчальні: ознайомитись з...
40747. Філософія Середньовіччя, Відродження та Нового часу 49.79 KB
  Центральна проблема філософії – проблема взаємовідносин людини та світу – у середньовічній філософії набирає специфічного змісту: це взаємовідносин Бога людини та світу. Завдання людини – зробити правильний вибір між цими двома світами. Утверджуючи переконання що істинне буття людини – це її духовне буття християнська теософія від Теос – Бог скеровує увагу філософів середньовіччя на дослідження внутрішнього духовного світу людини на освоєння безмежних глибин людської душі. Якщо ж людина знає розуміє те в що вірить її віра...
40748. Суб’єкти кримінального процесу 68.21 KB
  Інші учасники кримінального провадження. Відводи суб’єктів кримінального провадження. Поняття і класифікація суб’єктів кримінального процесу Кримінальний процесуальний кодекс України прийнятий 13 квітня 2012 року чітко не визначає поняття і не подає класифікацію суб’єктів кримінального провадження тому їх називають порізному: 1 особи які беруть участь у процесуальній дії – статті 104 107 КПК; 2 учасники кримінального провадження – статті 27 113 237 КПК та ін.; 3 учасники судового провадження – статті 34 107 317 347 КПК та ін.
40749. Сучасні види та способи друку 175.54 KB
  Класифікація видів та способів друку. Спеціальні види та способи друку. Класифікація видів та способів друку. Вид друку оприділяється конкретними особливостями роз положення друкарських елементів відносно пробільних на друкарських формах.
40750. АХОДИ ЗАБЕЗПЕЧЕННЯ КРИМІНАЛЬНОГО ПРОВАДЖЕННЯ 107.41 KB
  Затримання особи та обрання їй запобіжного заходу у вигляді взяття під варту : у чинному КПК України та у його проекті О. Поміщення особи у медичний заклад : пропозиції до нового КПК України В. 131 КПК заходами забезпечення кримінального провадження є: 1 виклик слідчим прокурором судовий виклик і привід ст. 133−143 КПК; 2 накладення грошового стягнення ст.
40751. Загальні положення досудового розслідування 41.62 KB
  Загальні положення досудового розслідування Поняття стадії досудового розслідування. Форми досудового розслідування: дізнання та досудове слідство. Поняття та характеристика загальних положень досудового розслідування.
40752. ПРОВАДЖЕННЯ СЛІДЧИХ (РОЗШУКОВИХ) ДІЙ 70.79 KB
  Забезпечення недоторканості житла чи іншого володіння особи в кримінальному процесі : Інститут слідчої дії ‑ це система правових приписів що визначають: сферу й об’єкт слідчої дії його мету і завдання; підстави проведення; коло учасників та їх правовий статус; механізм реалізації ними своїх прав і обов’язків; порядок здійснення і правила провадження пізнавальнозасвідчувальних дій; способи і форми їх фіксації; гарантії захисту прав і свобод людини заходи та межі примусу і відповідальності які застосовуються у разі...
40753. ПОВІДОМЛЕННЯ ПРО ПІДОЗРУ 44.63 KB
  Повідомлення про підозру займає особливе місце в структурі досудового розслідування. Воно підводить підсумок проведеної до того часу роботи, зібраним доказам, у більшості визначає подальше спрямування кримінального провадження і є початковим моментом притягнення до кримінальної відповідальності.
40754. Абразивні матеріали: класифікація, властивості та галузі використання 111.92 KB
  Абразивные материалы это материалы обладающие высокой твердостью и используемые для обработки поверхности различных материалов. Для изготовления абразивных инструментов используются частицы материалов различной зернистости обладающие высокой твердостью и способностью резания. Карбид кремния SiC обладает более высокой твердостью до3235 ГПа но имеет высокую хрупкость и малую прочность поэтому применяется для обработки хрупких материалов – чугунов бронзы титановых и тугоплавких сплавов заточки твердосплавных инструментов.