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


 

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

74245. ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ 280 KB
  Структура вычислительной сети Узел это любое устройство непосредственно подключенное к передающей среде сети. Каждый узел в сети имеет минимум два адреса: физический используемый оборудованием и логический используемый пользователями и приложениями. Здесь сообщение это целостная последовательность данных передаваемых по сети.
74246. Объектно-ориентированное программирование. Теоретические основы ООП 372.5 KB
  В основе любого языка лежит некоторая идея, оказывающая существенное влияние на стиль программ. Исторически первой была идея процедурного программирования.
74247. Технические средства ЭВМ 138.49 KB
  В основе функционирования любой ЭВМ лежит архитектура. В современных ЭВМ АЛУ и УУ объединены в общее устройство называемое центральным процессором. Схема архитектуры ЭВМ базирующаяся на принципах фон Неймана.
74248. Программное обеспечение ЭВМ и информационные технологии 199.8 KB
  Сообщение это форма представления информации для ее последующей передачи в одном из следующих видов: числовая форма представленная цифрами; текстовая форма представленная текстами составленными из символов того или иного языка; кодовая форма представленная кодами; например кодами в двоичной системе счисления кодами для сжатия или шифрования кодами азбуки Морзе или азбуки для глухонемых и т. Системы счисления Система счисления это соглашение о представлении чисел посредством конечной совокупности символов цифр...
74249. Программное обеспечение ЭВМ. Классификация программного обеспечения 382 KB
  Совокупность программ, процедур и правил, а также документации, связанных с функционированием системы обработки данных, составляют программное обеспечение (ПО; software). Программное и аппаратное обеспечение в ЭВМ работают в неразрывной связи и взаимодействии.
74250. ПРЕДСТЕРИЛИЗАЦИОННАЯ ОБРАБОТКА 258.5 KB
  Самостоятельная работа лабораторного занятия предусматривает знакомство студентов с инструкциями (методическими рекомендациями) по применению моюще-дезинфицирующих средств, нормативными документами, а также отработку техники манипуляций и решение ситуационных задач.
74251. СТЕРИЛИЗАЦИЯ. ПРИНЦИПЫ РАБОТЫ ЦСО 197 KB
  На данном занятии изучаются методы стерилизации, которые являются важнейшим аспектом программы профилактики ИСМП в медицинских организациях. Студенты должны четко осознавать важность стерилизационных мероприятий и овладеть знаниями и навыками, необходимыми для их осуществления.
74252. Личная гигиена тяжелобольного пациента. Утренний туалет 98.78 KB
  Личная гигиена тяжелобольного пациента. Отрабатывают навыки по уходу за волосами стрижку ногтей на руках ногах умывание пациента уход за слизистыми очищение наружного слухового прохода. Обучение пациента и его семьи элементам ухода. ОСНАЩЕНИЕ: тестовые задания 2 уровень задание для деловой игры таблица Личная гигиена пациента.
74253. УЧАСТИЕ МЕДСЕСТРЫ В ЛАБОРАТОРНЫХ МЕТОДАХ ИССЛЕДОВАНИЯ 169.51 KB
  Входной контроль знаний с эталонами ответов по теме Сбор мочи и взятие мазка из носа зева и носоглотки для лабораторных исследований. Манипуляции с алгоритмом по теме Сбор мочи и взятие мазка из носа зева и носоглотки для лабораторных исследований. Ситуационные задачи проблемного характера сценарий деловой игры элементы деловой игры по теме Сбор мочи и взятие мазка из носа зева и носоглотки для лабораторных исследований. Итоговый контроль тестовые задания письменная работа по теме Сбор мочи и взятие...