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

Результати роботи

Щоб вивести на індикатор за адресою #83FA букву G, необхідно на початку завантажити в акумулятор константу 7D.

Щоб вивести на індикатор за адресою #83FB букву Q, необхідно на початку завантажити в акумулятор константу BF.

A

G

F B

E C

D H

7 6 5 4 3 2 1 0

H G F E D C B A

Буква G висвітлюється на індикаторі, коли в сегментах A, C, D, E, F, G – 1.

0

1

1

1

1

1

0

1


0111 1101 => 7D

Буква Q висвітлюється на індикаторі, коли в сегментах A, B, C, D, E, F, H – 1.

1

0

1

1

1

1

1

1


1011 1111 => BF

Додаток а

Мнемо-код команди

Задіяні регі-стри

Код команди

Цикл

Адре-сація

Байт

Коментарі

КОМАНДИ ПЕРЕСИЛАННЯ

MOV

A,A

A,B

A,C

A,D

A,E

A,H

A,L

7F

78

79

7A

7B

7C

7D

1

пряма

1

Вміст регістра А

B

C

D

E

H

L пересилається в регістр А.

B,A

B,B

B,C

B,D

B,E

B,H

B,L

47

40

41

42

43

44

45

1

пряма

1

Вміст регістра А

B

C

D

E

H

L пересилається в регістр B.

C,A

C,B

C,C

C,D

C,E

C,H

C,L

4F

48

49

4A

4B

4C

4D

1

пряма

1

Вміст регістра A

B

C

D

E

H

L пересилається в регістр C.

D,A

D,B

D,C

D,D

D,E

D,H

D,L

57

50

51

52

53

54

55

1

пряма

1

Вміст регістра A

B

C

D

E

H

L пересилається в регістр D.

E,A

E,B

E,C

E,D

E,E

E,H

E,L

5F

58

59

5A

5B

5C

5D

1

пряма

1

Вміст регістра A

B

C

D

E

H

L пересилається в регістр E.

H,A

H,B

H,C

H,D

H,E

H,H

H,L

67

60

61

62

63

64

65

1

пряма

1

Вміст регістра A

B

C

D

E

H

L пересилається в регістр H.

L,A

L,B

L,C

L,D

L,E

L,H

L,L

6F

68

69

6A

6B

6C

6D

1

пряма

1

Вміст регістра A

B

C

D

E

H

L пересилається в регістр L.

A,M

B,M

C,M

D,M

E,M

H,M

L,M

7E

46

4E

56

5E

66

6E

2

непряма

1

Вміст комірки пам’яті M пересилається в регістр A

B

C

D

E

H

L.

M,A

M,B

M,C

M,D

M,E

M,H

M,L

77

70

71

72

73

74

75

1

пряма

1

Вміст регістра А

B

C

D

E

H

L пересилається в комірку пам’яті М.

КОМАНДИ БЕЗПОСЕРЕДНЬОЇ ПЕРЕСИЛКИ

MVI

A,байт

B,байт

C,байт

D,байт

E,байт

H,байт

L,байт

M, байт

3E

06

0E

16

1E

26

2E

36

2

3

безпосе-редня

2

Пересилання 16-кової константи в регістр А

B

C

D

E

H

L

в комірку пам’яті М.

КОМАНДИ БЕЗПОСЕРЕДНЬОГО ЗАВАНТАЖЕННЯ РЕГІСТРІВ

LXI

B,2 байта

D,2 байта

H,2 байта

SP,2байта

01

11

21

31

5

безпосе-редня

3

Числова шістнадцяткова команда, яка може займати 2 байти завантажується в регістрову пару ВС

DE

HL

стек, вказівник якого SP.

КОМАНДИ ЗАГРУЗКИ/ЗБЕРЕЖЕННЯ

LDAX

B

D

H

0A

1A

7E

2

непряма

1

Вміст комірки пам’яті, адреса якої вказана в парі регістрів BC

DE

HL пересилається в акумулятор.

LHLD

[адреса]

2A

4

3

Вміст комірки пам’яті, адреса якої вказана в другому або третьому байтах команди, пересилається в регістр L. Вміст комірки пам’яті з наступною адресою ((адр.)+1) пересилається в регістр H

LDA

[адреса]

3A

4

непряма

3

Вміст комірки пам’яті, адреса якої вказана в другому або третьому байтах команди, завантажується в акумулятор.

STAX

B

D

02

12

2

непряма

2

Вміст акумулятора пересилається в комірку пам’яті , адреса якої встановлений в парі регістрів BC

DE.

SHLD

[адреса]

22

5

безпосе-редня

3

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

STA

[адреса]

32

4

безпосе-редня

3

Вміст акумулятора пересилається в комірку пам’яті, адреса якої вказана в другому і третьому байтах команди.

КОМАНДИ ДОДАВАННЯ

ADD

A

B

C

D

E

H

L

M

87

80

81

82

83

84

85

86

2

непряма

1

До вмісту акумулятора додаємо вміст регістру А

B

C

D

E

H

L

комірки пам’яті М, адреса якої міститься а регістрі HL, і результат в акумуляторі.

ADC

A

B

C

D

E

H

L

M

8F

88

89

8A

8B

8C

8D

8E

1

непряма

1

Додавання з переносом, до вмісту акумулятора додаємо вміст регістру A

B

C

D

E

H

L

комірки пам’яті М, адреса якої міститься в регістрі HL, і біт основного переносу від попередньої операції.

ADI

байт

С6

2

безпосе-редня

2

Числова константа додається до вмісту акумулятора, результат операції в акумуляторі.

ACI

байт

CE

2

безпосе-редня

2

Числова константа додається до вмісту акумулятора і біт основного переносу від попередньої операції, результат операції в акумуляторі.

КОМАНДИ ІНКРЕМЕНТ

INR

A

B

C

D

E

H

L

M

3C

04

0C

14

1C

24

2C

34

1

непряма

1

Вміст регістра A

B

C

D

E

H

L

комірки пам’яті , адреса якої міститься в регістрі HL збільшити на 1.

INX

B

D

H

SP

03

13

23

33

1

непряма

1

На одиницю збільшуємо регістрову пару BC

DE

HL

вміст стеку вказівник якого SP.

КОМАНДИ ДИКРЕМЕНТ

DCR

A

B

C

D

E

H

L

M

3D

05

0D

15

1D

25

2D

35

1

непряма

1

Зменшення вмісту регістра А

B

C

D

E

H

L

вмісту комірки пам’яті M, адреса якої міститься в регістрі HL, на 1.

DCX

B

D

H

SP

0B

1B

2B

3B

1

непряма

1

Зменшення вмісту регістрової пари BC

DE

HL

вмісту стеку, вказівник якого SP на 1.

ПОДВІЙНЕ ДОДАВАННЯ

DAD

B

D

H

SP

09

19

29

39

3

непряма

1

Вміст пари регістрів BC

DE

HL

Вміст стеку, вказівник якого SP,

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

КОМАНДИ ВІДНІМАННЯ

SUB

A

B

C

D

E

H

L

M

97

90

91

92

93

94

95

96

1

непряма

1

Від вмісту акумулятора відняти вміст регістра А

B

C

D

E

H

L

вміст комірки пам’яті M, адреса якої знаходиться в регістрі HL, а результат в акумуляторі.

SBB

A

B

C

D

E

H

L

M

9F

98

99

9A

9B

9C

9D

9E

1

непряма

1

Від вмісту акумулятора відняти вміст регістра А

B

C

D

E

H

L

вміст комірки пам’яті M, адреса якої знаходиться в регістрі HL і 1 позички , віднімаємо біт СУ регістра ознак, а результат в акумуляторі.

SUI

Байт

D6

2

безпосе-редня

2

Від вмісту акумулятора віднімаємо шістнадцяткову константу від вмісту акумулятора.

SBI

Байт

DE

2

безпосе-редня

2

Від вмісту акумулятора віднімаємо шістнадцяткову константу і біт основного переносу СУ регістра ознак від вмісту акумулятора.

КОМАНДИ ПОРОЗРЯДНОГО ЛОГІЧНОГО «І»

ANA

A

A7

1

непряма

1

Виконується над вмістом акумулятора і регістром А

B

C

D

E

H

L

A0

A1

A2

A3

A4

A5

B

C

D

E

H

L,

M

A6

вмістом комірки пам’яті M незалежно в кожному розряді , без переносів, а результат в акумуляторі.

ANI

байт

E6

1

безпосе-редня

1

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

КОМАНДИ ПОРОЗРЯДНОГО ЛОГІЧНОГО «АБО»

ORA

A

B

C

D

E

H

L

M

B7

B0

B1

B2

B3

B4

B5

B6

1

непряма

1

Виконується над вмістом акумулятора і регістром A

B

C

D

E

H

L

вмістом комірки пам’яті M незалежно в кожному розряді , без переносів, а результат в акумуляторі.

ORI

байт

F6

2

безпосередня

2

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

КОМАНДИ СУМА ПО MOD 2

XRA

A

B

C

D

E

H

L

M

AF

A8

A9

AA

AB

AC

AD

AE

1

непряма

1

Виконується над вмістом акумулятора і регістром A

B

C

D

E

H

L

вмістом комірки пам’яті M незалежно в кожному розряді , без переносів, а результат в акумуляторі.

XRI

байт

EE

2

безпосе-редня

1

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

CMP

A

B

C

D

E

H

L

BF

B8

B9

BA

BB

BC

BD

1

1

Вміст регістра A

B

C

D

E

H

L порівнюється з вмістом акумулятора.

CMP

M

BE

2

1

Вміст комірки пам’яті, адреса якої знаходиться в регістровій парі HL, порівнюється з вмістом акумулятора.

CPI

байт

FE

2

1

Вміст другого байта команди порівнюється з вмістом акумулятора.

КОМАНДИ ЗСУВУ

RLC

07

1

1

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

RRC

OF

1

1

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

RAL

17

1

1

Вміст акумулятора зсувається вліво на одну позицію через біт переносу СУ. Молодший біт стає рівний прапорцю переносу, а біт прапорця переносу СУ – рівний величині старшого біта акумулятора . Команда діє лише на прапорець переносу СУ.

RAR

1F

1

1

Вміст акумулятора зсувається вправо на одну позицію через біт переносу СУ. Старший біт акумулятора стає рівний прапорцю переносу, а прапорець переносу СУ – рівний молодшому біту акумулятора . Команда використовує лише прапорець переносу СУ.

СПЕЦІАЛЬНІ КОМАНДИ

DAA

27

1

1

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

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

  2. якщо тепер число представляється чотирма старшими бітами акумулятора, більше 9 або встановлений прапорець переносу СУ, то число 6 додаємо до числа, яке створене чотирма бітами акумулятора.

Використовуються всі прапорці.

CMA

2F

1

1

Вміст акумулятора інвертується (біт, рівний 1, стає рівним 0; біт, рівний 0, стає рівним 1). Прапорці не використовуються.

STC

37

1

1

Біт прапорця переносу встановлюється в 1, інші прапорці не використовуються.

CMC

3F

1

1

Інвертується біт прапорця переносу СУ. Інші прапорці не використовуються.

КОМАНДИ ПЕРЕХОДІВ

JMP

[адреса]

C3

3

3

Безумовний перехід на комірку пам’яті з вказаною адресою

JNZ

[адреса]

C2

3

3

Перехід по ненулю, то наступна команда, яка буде виконана це та, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JZ

[адреса]

CA

3

3

Перехід по нулю, то наступна команда, яка буде виконана це та, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JNC

[адреса]

D2

3

3

Перехід по непереносу, якщо біт основного переносу регістра ознак СУ=0, то наступна команда, яка буде виконана це та, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JC

[адреса]

DA

3

3

Перехід по переносу, якщо біт основного переносу регістра ознак СУ=1, то наступна команда, яка буде виконана це та, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JPO

[адреса]

E2

3

3

Перехід по непарності кількості одиниць на команду, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JPE

[адреса]

EA

3

3

Перехід по парності кількості одиниць на команду, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JP

[адреса]

F2

3

3

Перехід по плюсу ( тобто аналізується 7-й біт акумулятора) на команду, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

JM

[адреса]

FA

3

3

Перехід по мінусу ( тобто аналізується 7-й біт акумулятора) на команду, яка вказана в команді переходу, в іншому випадку виконається команда, яка іде наступною за командою переходу

PCHL

[адреса]

E9

3

3

Завантаження в РС вмісту регістрової пари HL, потім перехід на адресу, яка зберігається в регістровій парі HL

КОМАНДИ ВИКЛИКУ ПІДПРОГРАМ

CALL

[адреса]

CD

5

2

Безумовний виклик підпрограми. Старші 8 біт адреси наступної команди пересилаються в комірку пам’яті, адреса якої на 1 менша вмісту вказівника СТЕКУ SP. Молодші 8 біт адреси наступної команди пересилаються в комірку пам’яті, адреса якої на 2 менша від величини показника СТЕКУ SP. Вміст вказівника СТЕКУ зменшується на 2. управління передається команді, адреса якої вказана в 2 і 3 байтах команди виклику.

CNZ

[адреса]

C4

5

2

Виклик підпрограми по ненулю. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CZ

[адреса]

CC

5

2

Виклик підпрограми по нулю. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CNC

[адреса]

D4

5

2

Виклик підпрограми по непереносу, СУ=0. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CC

[адреса]

DC

5

2

Виклик підпрограми по основному переносу, СУ=1. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CPO

[адреса]

E4

5

2

Виклик підпрограми по непарності. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CPE

[адреса]

EC

5

2

Виклик підпрограми по парності. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

CP

[адреса]

F4

5

2

Виклик підпрограми якщо додатне значення старшого біту акумулятора. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться. Команда виконується за 5 циклів.

CM

[адреса]

FC

5

2

Виклик підпрограми якщо від’ємне значення старшого біту акумулятора. Якщо вказана умова істинна, то виконуються дії, описані в команді CALL, в протилежному випадку послідовність команд не зміниться.

КОМАНДИ ПОВЕРНЕННЯ З ПІДПРОГРАМИ

RET

C9

3

1

Безумовне повернення з підпрограми. Вміст комірки пам’яті, адреса якої міститься і вказівнику СТЕКУ SP, пересилаються в 8 молодших біт програмного лічильника PC. Вміст комірки пам’яті, адреса якої на 1 більша вмісту вказівника СТЕКУ, пересилається в 8 старших біт програмного лічильника. Вміст вказівника СТЕКА збільшується на 2.

RNZ

CO

3

1

Вихід з підпрограми по ненулю. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RZ

C8

3

1

Вихід з підпрограми по нулю. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RNC

DO

3

1

Вихід з підпрограми по непереносу, СУ=0. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RC

D8

3

1

Вихід з підпрограми по переносу, СУ=1. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RPO

EO

3

1

Вихід з підпрограми по непарності. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RPE

E8

3

1

Вихід з підпрограми по парності. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RP

FO

3

1

Вихід з підпрограми, коли додатне значення старшого біту акумулятора. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

RM

F8

3

1

Вихід з підпрограми, коли від’ємне значення старшого біту акумулятора. Якщо вказана умова істинна, то виконуються дії, описані в команді RET, в протилежному випадку послідовність команд не зміниться.

КОМАНДА РЕСТАРТ

RST

0

1

2

3

4

5

6

7

C7

CF

D7

DF

E7

EF

F7

FF

3

Старші 8 біт адреси наступної команди пересилаються в комірку пам’яті, адреса якої на 1 менша ніж вміст вказівника СТЕКУ. Молодші 8 біт адреси наступної команди пересилаються в комірку пам’яті, адреса якої на 2 менша ніж вміст вказівника СТЕКУ. Вміст вказівника СТЕКУ зменшується на 2. Управління передається команді, адреса якої рівна коду NNN, помноженому на 8.

ОПЕРАЦІЇ ЗІ СТЕКОМ

PUSH

B

D

H

С5

D5

E5

3

1

Вміст старшого регістра пари BC

DE

HL пересилається в комірку пам’яті, адреса якої на 1 менша ніж вміст вказівника СТЕКУ SP.

PUSH

PSW

F5

3

2

Вміст пересилається в комірку пам’яті, адреса якої на 1 менша ніж вміст вказівника СТЕКУ SP. Вміст прапорців об’єднується в одне слово стану, яке пересилається в комірку пам’яті, адреса якої на 2 менша ніж вміст вказівника СТЕКУ . Вміст вказівника СТЕКУ зменшується на 2.

XTHL

E3

5

1

Вміст регістра L обмінюється на вміст комірки пам’яті, адреса якої міститься у вказівнику СТЕКУ SP. Вміст регістра H обмінюється на вміст комірки пам’яті, адреса якої на 1 більша за вміст вказівника СТЕКУ.

POP

B

D

H

С1

D1

E1

3

1

Вміст комірки пам’яті, адреса якої визначається вмістом вказівника СТЕКУ SP, пересилається в молодший регістр пари регістрів BC

DE

HL.

POP

PSW

F1

3

2

Вміст комірки пам’яті, адреса якої визначається вмістом вказівника СТЕКУ SP, використовується для відновлення стану прапорців. Вміст комірки пам’яті, адреса якої на 1 більша ніж вміст вказівника СТЕКУ, переключається в акумулятор. Вміст вказівника стеку збільшується на 2.

SPHL

F9

1

1

Вміст регістрівH і L (16 біт) пересилається у вказівник СТЕКУ

КОМАНДИ ВВОДУ/ ВИВОДУ

OUT

байт

D3

3

2

Дані, які містяться в 8 бітах двох напрямленої шини даних вказівника порту, пересилаються в акумулятор.

IN

байт

DB

3

2

Вміст акумулятора переміщається на двох напрямлену шину даних для передачі у вказівний порт.

КОМАНДИ УПРАВЛІННЯ

DI

F3

1

1

Система переривання забороняється безпосередньо при виконання наступної за DI командою.

EI

FB

1

1

Система переривання забороняється при виконанні наступної команди.

NOP

00

1

1

Порожня команда. В РС заноситься адреса наступної команди, і МП переходить до її обробки. Стан прапорців і регіст-рів не змінюється.

HLT

76

1

1

В РС заноситься адреса наступної команди. Процесор не виконує нічого до приходу переривання. Стан прапорців і регістрів не змінюється.

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