Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB-4_нов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
284.67 Кб
Скачать

Inr r (збільшення вмісту регістру)

(r)  (r) + 1

Вміст регістра r збільшується на 1

Примітка. Команда впливає на стан всіх прапорів, крім прапору переносу CY.

0

0

D

D

D

1

0

0

INR A 3C

INR B O4

INR C OC

INR D 14

INR E 1C

INR H 24

INR L 26

Цикли: 1

Стан: 4

Адресація: регістрова

Прапори: Z, S, P, AC

Inr м (збільшення вмісту комірки пам'яті)

((H) (L))  ((H) (L)) + 1

Вміст комірки пам'яті, адреса якої міститься в регістрах H i L, збільшується на 1.

Примітка. Команда впливає на всі прапори, крім прапору переносу CY.

0

0

1

1

0

1

0

0

INR М 34

Цикли: 3

Стан: 10

Адресація: непряма регістрова

Прапори: Z, S, P, AC

DCR r (ЗМЕНШЕННЯ ВМІСТУ РЕГІСТРУ)

(r)  (r) - 1

Вміст регістра r зменшується на 1

Примітка. Команда впливає на стан всіх прапорів, крім прапору переносу CY.

0

0

D

D

D

1

0

1

DCR A 3D

DCR B O5

DCR C OD

DCR D 15

DCR E 1D

DCR H 25

DCR L 2D

Цикли: 1

Стан: 4

Адресація: регістрова

Прапори: Z, S, P, AC

DCR М (ЗМЕНШЕННЯ ВМІСТУ КОМІРКИ ПАМ'ЯТІ)

((H) (L))  ((H) (L)) - 1

Вміст комірки пам'яті, адреса якої міститься в регістрах H i L, зменшується на 1.

Примітка. Команда впливає на всі прапори, крім прапору переносу CY.

0

0

1

1

0

1

0

1

DCR М 35

Цикли: 3

Стан: 10

Адресація: непряма регістрова

Прапори: Z, S, P, AC

Inr rp (збільшення вмісту пари регістрів)

(rh) (rlL)  (rh) (rl) + 1

Вміст пари регістрів rp збільшується на одиницю.

Примітка. Команда не впливає на прапори.

0

0

R

P

0

0

1

1

INX B 03 (пара регістрів B i C)

INX D 13 (пара регістрів D i E)

INX H 23 (пара регістрів H i L)

INX SP 33 (вказівник СТЕКУ)

Цикли: 1

Стан: 6

Адресація: регістрова

Прапори: нема

DCX rp (ЗМЕНШЕННЯ ВМІСТУ ПАРИ РЕГІСТРІВ)

(rh) (rl)  (rh) (rl) - 1

Вміст пари регістрів rp зменшується на одиницю.

Примітка. Команда не впливає на прапори.

0

0

R

P

1

0

1

1

DCX B OB (пара регістрів B i C)

DCX D 1B (пара регістрів D i E)

DCX H 2B (пара регістрів H i L)

DCX SP 3B (вказівник СТЕКУ)

Цикли: 1

Стан: 6

Адресація: регістрова

Прапори: нема

DAD rp (ДОДАВАННЯ ВМІСТУ ПАРИ РЕГІСТРІВ З ВМІСТОМ РЕГІСТРІВ H i L)

(H) (L)  (H) (L) + (rh) (rl)

Вміст пари регістрів rp додається з вмістом регістрів H i L. Результат поміщується в пару регістрів H, L.

Примітка. Використовується тільки прапор переносу CY. Він встанов-люється, якщо є перенос при додаванні з подвійною точністю, в противному випадку він спрацьовує.

0

0

R

P

1

0

0

1

DAD B O9 (пара регістрів B i C)

DAD D 19 (пара регістрів D i E)

DAD H 29 (пара регістрів H i L)

DAD SP 39 (вказівник СТЕКУ)

Цикли: 3

Стан: 10

Адресація: регістрова

Прапори: CY

DAA (ДЕСЯТКОВЕ ДОПОВНЕННЯ АКУМУЛЯТОРА)

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

1. Якщо число, представлене чотирьма молодшими бітами акумулятора, більше 8 чи встановлений флажок допоміжного переносу АС, то до вмісту акумулятора додається 6.

2. Якщо тепер число, представлене чотирьма старшими бітами акумулятора, більше 9 чи встановлений флажок переносу CY, то число 6 додається до числа, утвореного чотирьома старшими бітами.

Примітка. Використовується всі флажки.

0

0

1

0

0

1

1

1

DAА 27

Цикли: 1

Стан: 4

Прапори: Z, S, P, CY, AC

Завдання 2.1. Скласти програму, що здiйснює операцii додавання i вiднiмання мiж двома попередньо уведеними в пам'ять числами. Результат обчислень заноситься у вiльнi комiрки пам'ятi. Закодувати програму, увести у пам'ять МПС, перевiрити результат у кроковому режимi. Записати програму у звiт разом iз отриманими результатами.

Множення двох чисел iз застосуванням переносу. Застосовуючи команди циклiчних зсувiв, можна створити рацiональну програму множення двох чисел. В цiй програмi циклiчний зсув вправо використовується для визначення зa допо­могою прапора переносу кожного розряда другого множника якщо даний розряд дорiвнює 1, то перший множник додаeться, якщо ж вiн дорiвнюe 0, то перший множник зсовуeться влiво без додавання. Циклiчний зсув влiво використаний для змiщення першого множника влiво при множеннi на кожний розряд другого множника.

Дана програма множення працює значно швидше, нiж побудована на простому додаваннi, через значно меншу кiлькiсть операцiй. Програма дозволяє помножити два шiстнадцяткових числа при умовi, що їх добуток не перевищує FF = 255.

Множники записуються у комiрки 8101 та 8102, а результат множення засилається у комiрку 8103.

Завдання 3.1. Уведiть програму у пам'ять, запишiть два числа у комiрки 8101 i 8102. Пустiть програму в автоматичному режимi. Перевiрте результат. Запишiть два iнших числа у комiрки 8101 i 8102. Проженiть програму у кроковому режимi. Проаналiзуйте програму.

МНОЖЕННЯ ДВОХ ЧИСЕЛ (З ЗАСТОСУВАННЯМ ЗСУВУ).

АДРЕСА

КОД

МIТКА

КОМАНДА

КОМЕНТАР

1

2

3

4

5

8000

LDA [8101]

[8101]  A

8001

01

8002

81

8003

47

MOV B,A

A  B

8004

LDA [8102]

[8102]  A

8005

02

8006

81

8007

16

MVI D,00

00  D

8008

00

8009

MVI E,07

07  E

800А

07

800В

00

NOP

800С

0F

В:

RRC

[8102]-зсув вправо

800D

4F

MOV C,A

A  C

800Е

1D

DCR E

E - I  E

800F

D2

JNC,A:

8010

15

8011

80

8012

78

MOV A,B

B  A

8013

82

ADD D

D + A  A

8014

57

MOV D,A

A  D

8015

78

А:

MOV A,B

B  A

8016

07

RLC

зсув влiво

8017

47

MOV B,A

A  B

8018

MOV A,E

E  A

8019

87

ADD A

801А

СА

JZ,D:

801В

21

801С

80

801D

79

MOV A,C

C  A

801Е

С3

JMP,B:

801F

0C

8020

80

8021

Д:

MOV A,B

D  A

8022

32

STA [8103]

D  [8103]

8023

03

8024

81

8025

76

HLT

стоп

ДОДАВАННЯ ДВОХ ЧИСЕЛ З ВИКОРИСТАННЯМ ПОСЕРЕДНЬОРЕГІСТРОВОЇ АДРЕСАЦІЇ.

АДРЕСА

КОД

МIТКА

КОМАНДА

КОМЕНТАР

1

2

3

4

5

8000

LDA [8101]

[8101]  A

8001

01

8002

81

8003

47

MOV B,A

A  B

8004

LDA [8102]

[8102]  A

8005

02

8006

81

8007

16

MVI D,00

00  D

8008

00

8009

MVI E,07

07  E

800А

07

800В

00

NOP

800С

0F

В:

RRC

[8102]-зсув вправо

800D

4F

MOV C,A

A  C

800Е

1D

DCR E

E - I  E

800F

D2

JNC,A:

8012

78

MOV A,B

B  A

8013

82

ADD D

D + A  A

8014

57

MOV D,A

A  D

8015

78

А:

MOV A,B

B  A

8007

16

MVI D,00

00  D

8008

00

8009

MVI E,07

07  E

800А

07

8025

76

HLT

стоп

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]