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


 

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

21764. Рудничная аэромеханика. Аэродинамическое сопротивление горных выработок и методы его расчета 1.87 MB
  Разделив в этой формуле левую и правую части выражения на площадь живого сечения потока S SM получим выражение кг м2 в котором величина Pлб SSм представляет собой лобовое сопротивление hлб; тогда окончательное выражение для подсчета величины потерь давления воздуха вызванных лобовым сопротивлением hлб = Cx кг м2 Суммарное сопротивление. Эквивалентное отверстие выработки или шахты площадь отверстия в тонкой стенке через которое при разности давлений по обе стороны стенки равной депрессии выработки или шахты проходит...
21765. Специальные вентиляционные режимы 223.5 KB
  Высокая температура в очаге пожара приводит к нагреву воздуха что вызывает нарушение вентиляции шахты в целом и отдельных ее участков изменяется дебит вентиляционных потоков и их направление. При пожарах могут применяться следующие вентиляционные режимы: неизменный по дебиту и направлению; ослабленный или усиленный по дебиту и неизменный по направлению; реверсивный в целом по шахте или на отдельных участках с изменением количества воздуха; нулевой при котором прекращается доступ воздуха к очагу пожара путем выключения вентиляторов или с...
21766. Проектирование вентиляции шахт 1.43 MB
  При проектировании вентиляции шахты решаются задачи выбора схем вентиляции участков и шахты прогноза выделений вредных газов в выработки определения расхода воздуха для вентиляции шахты проверки сечения выработок по допустимой скорости движения воздуха выбора калорифера для подогрева поступающего в шахту воздуха в зимнее время проверки устойчивости движения воздуха в выработках расчета депрессии шахты регулирования распределения воздуха по выработкам шахты выбора способа вентиляции шахты и вентилятора главного проветривания...
21767. Расчет расхода воздуха для шахты в целом 2.99 MB
  3 Расчет расхода воздуха для шахты в целом Расход воздуха для шахты в целом определяется по формуле Qш=11ΣQучΣQп.ΣQкΣQут м3 мин 1 где 11 коэффициент учитывающий неравномерность распределения воздуха по сети горных выработок; ΣQуч расход воздуха для проветривания выемочных участков м3 мин; ΣQп.в расход воздуха подаваемый к всасам ВМП для обособленного проветривания тупиковых выработок м3 мин. На газовых шахтах расход воздуха для проветривания тупиковых выработок проводимых за пределами выемочных участков кроме...
21768. Расчет количества воздуха 1.55 MB
  В соответствии с 200 ПБ проветривание шахт должно быть организовано таким образом чтобы состав скорость и температура воздуха в действующих горных выработках соответствовали требованиям настоящих Правил. Расход количество воздуха для проветривания шахт должен определяться в соответствии с руководствами инструкциями утвержденными в установленном порядке. Расход воздуха подаваемого в горные выработки должен соответствовать расчетному.
21769. Исследование спектральных характеристик систем с ШИМ c выходом по переменному току 360 KB
  Задачей работы является приобретение навыков теоретического расчета фильтров импульсно-модуляционных систем при прохождении через них сигналов с ШИМ-II
21770. Компьютерная безопасность и взлом компьютерных систем 92.5 KB
  Компьютерные преступления приобрели в странах с развитой телекоммуникационной инфраструктурой настолько широкое распространение, что для борьбы с ними в уголовное законодательство были введены специальные составы преступлений. Однако во всех странах мира отмечается лавинообразный рост компьютерной преступности
21771. Основы С. Быстрый старт 943.54 KB
  Освоение основ языка ANSI С, создания и практического освоения функций ввода и вывода, математических функций, написание программы по индивидуальному варианту
21772. Условный оператор if и оператор выбора switch 785.71 KB
  Задача лабораторной работы состоит в практическом освоении оператора условия и выбора, совмещения их с функциями ввода и вывода, математическими функциями в одном приложении, написание приложения по индивидуальному варианту.