Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

i8080_commands

.pdf
Скачиваний:
23
Добавлен:
02.04.2015
Размер:
195.33 Кб
Скачать

Система команд микропроцессора Intel 8080

Команда

Код

Описание

 

 

 

ADD A

87

Сложить A + A результат записать в A

 

 

 

ADD B

80

Сложить B + A результат записать в A

 

 

 

ADD C

81

Сложить C + A результат записать в A

 

 

 

ADD D

82

Сложить D + A результат записать в A

 

 

 

ADD E

83

Сложить E + A результат записать в A

 

 

 

ADD H

84

Сложить H + A результат записать в A

 

 

 

ADD L

85

Сложить L + A результат записать в A

 

 

 

ADD M

86

Сложить M(HL) + A результат записать в A

 

 

 

ADI (d8)

C6

Сложить d8 + A результат записать в A

 

 

 

ADC A

8F

Сложить A + A + CY результат записать в A

 

 

 

ADC B

88

Сложить B + A + CY результат записать в A

 

 

 

ADC C

89

Сложить C + A + CY результат записать в A

 

 

 

ADC D

8A

Сложить D + A + CY результат записать в A

 

 

 

ADC E

8B

Сложить E + A + CY результат записать в A

 

 

 

ADC H

8C

Сложить H + A + CY результат записать в A

 

 

 

ADC L

8D

Сложить L + A + CY в результат записать A

 

 

 

ADC M

8E

Сложить M(HL) + A + CY результат записать в A

 

 

 

ACI (d8)

CE

Сложить d8 + A + CY результат записать в A

 

 

 

ANA A

A7

Произвести логическую операцию И между A и А

 

 

 

ANA B

A0

Произвести логическую операцию И между B и A

 

 

 

ANA C

A1

Произвести логическую операцию И между C и A

 

 

 

ANA D

A2

Произвести логическую операцию И между D и A

 

 

 

ANA E

A3

Произвести логическую операцию И между E и A

 

 

 

ANA H

A4

Произвести логическую операцию И между H и A

 

 

 

ANA L

A5

Произвести логическую операцию И между L и A

 

 

 

ANA M

A6

Произвести логическую операцию И между M(HL) и A

 

 

 

ANI (d8)

E6

Произвести логическую операцию И между байтом данных

и аккумулятором

 

 

 

 

 

CALL (adr)

CD

Вызвать подпрограмму по адресу adr

 

 

 

CZ (adr)

CC

Вызвать подпрограмму по адресу adr, если результат 0

 

 

 

СNZ (adr)

C4

Вызвать подпрограмму по адресу adr, если результат не 0

 

 

 

СP (adr)

F4

Вызвать подпрограмму по адресу adr, если результат

положительный

 

 

 

 

 

СM (adr)

FC

Вызвать подпрограмму по адресу adr, если результат

отрицательный

 

 

 

 

 

CC (adr)

DC

Вызвать подпрограмму по адресу adr, если есть перенос

 

 

 

CNC (adr)

D4

Вызвать подпрограмму по адресу adr, если нет переноса

 

 

 

CPE (adr)

EC

Вызвать подпрограмму по адресу adr, если результат

четный

 

 

 

 

 

CPO (adr)

E4

Вызвать подпрограмму по адресу adr, если результат

нечетный

 

 

 

 

 

CMA

2F

Инвертировать A

 

 

 

CMC

3F

Инвертировать флаг переноса

 

 

 

CMP A

BF

Установить флаг FZ

 

 

 

CMP B

B8

Сравнить A с B

 

 

 

CMP C

B9

Сравнить A с C

 

 

 

CMP D

BA

Сравнить A с D

 

 

 

CMP E

BB

Сравнить A с E

 

 

 

CMP H

BC

Сравнить A с H

 

 

 

CMP L

BD

Сравнить A с L

 

 

 

CMP M

BE

Сравнить A с M(HL)

 

 

 

CPI (d8)

FE

Сравнить A с байтом данных

 

 

 

DAA

27

Произвести десятичную коррекцию аккумулятора

 

 

 

DAD B

09

Сложить BC с HL, результат записать в HL

 

 

 

DAD D

19

Сложить DE с HL, результат записать в HL

 

 

 

DAD H

29

Сложить HL с HL (удвоение HL)

 

 

 

DAD SP

39

Сложить SP с HL, результат записать в HL

 

 

 

DCR A

3D

A - 1

 

 

 

DCR B

05

B - 1

 

 

 

DCR C

0D

C - 1

 

 

 

DCR D

15

D - 1

 

 

 

DCR E

1D

E - 1

 

 

 

DCR H

25

H - 1

 

 

 

DCR L

2D

L - 1

 

 

 

DCR M

35

M(HL) -1

 

 

 

DCX B

0B

BC - 1

 

 

 

DCX D

1B

DE -1

 

 

 

DCX H

2B

HL - 1

 

 

 

DCX SP

3B

SP -1

 

 

 

DI

F3

Запретить прерывания

 

 

 

EI

FB

Разрешить прерывания

 

 

 

HLT

76

Остановить процессор

 

 

 

INR A

3C

A + 1

 

 

 

INR B

04

B + 1

 

 

 

INR C

0C

C + 1

 

 

 

INR D

14

D + 1

 

 

 

INR E

1C

E + 1

 

 

 

INR H

24

H + 1

 

 

 

INR L

2C

L + 1

 

 

 

INR M

34

M(HL) + 1

 

 

 

INX B

03

BС + 1

 

 

 

INX D

13

DE + 1

 

 

 

INX H

23

HL + 1

 

 

 

INX SP

33

SP + 1

 

 

 

JMP (adr)

C3

Перейти по указанному в команде адресу безусловно

 

 

 

JZ (adr)

CA

Перейти по указанному в команде адресу, если результат 0

 

 

 

JNZ (adr)

C2

Перейти по указанному в команде адресу, если результат

не 0

 

 

 

 

 

JP (adr)

F2

Перейти по указанному в команде адресу, если результат

положительный

 

 

 

 

 

JM (adr)

FA

Перейти по указанному в команде адресу, если результат

отрицательный

 

 

 

 

 

JC (adr)

DA

Перейти по указанному в команде адресу, если есть

перенос

 

 

 

 

 

JNC (adr)

D2

Перейти по указанному в команде адресу, если нет

переноса

 

 

 

 

 

JPE (adr)

EA

Перейти по указанному в команде адресу, если паритет

чётный

 

 

 

 

 

JPO (adr)

E2

Перейти по указанному в команде адресу, если паритет

нечётный

 

 

 

 

 

LDA (adr)

3A

Копировать в A данные из ячейки памяти по указанному в

команде адресу

 

 

 

 

 

LDAX B

0A

Копировать в A данные из ячейки памяти по адресу

записанному в BC

 

 

 

 

 

LDAX D

1A

Копировать в A данные из ячейки памяти по адресу

записанному в DE

 

 

 

 

 

LHLD (adr)

2A

Копировать в HL данные из ячейки памяти по указанному в

команде адресу

 

 

 

 

 

LXI B, (d16)

01

Записать в BC двухбайтный операнд

 

 

 

LXI H, (d16)

21

Записать в HL двухбайтный операнд

 

 

 

LXI SP, (d16)

31

Записать в SP двухбайтный операнд

 

 

 

MOV A, A

7F

Копировать данные из A в A

 

 

 

MOV A, B

78

Копировать данные из B в A

 

 

 

MOV A, C

79

Копировать данные из C в A

 

 

 

MOV A, D

7A

Копировать данные из D в A

 

 

 

MOV A, E

7B

Копировать данные из E в A

 

 

 

MOV A, H

7C

Копировать данные из H в A

 

 

 

MOV A, L

7D

Копировать данные из L в A

 

 

 

MOV A, M

7E

Копировать данные из M(HL) в A

 

 

 

MOV B, A

47

Копировать данные из A в B

 

 

 

MOV B, B

40

Копировать данные из B в B

 

 

 

MOV B, C

41

Копировать данные из C в B

 

 

 

MOV B, D

42

Копировать данные из D в B

 

 

 

MOV B, E

43

Копировать данные из E в B

 

 

 

MOV B, H

44

Копировать данные из H в B

 

 

 

MOV B, L

45

Копировать данные из L в B

 

 

 

MOV B, M

46

Копировать данные из M(HL) в B

 

 

 

MOV C, A

4F

Копировать данные из A в C

 

 

 

MOV C, B

48

Копировать данные из B в C

 

 

 

MOV C, C

49

Копировать данные из C в C

 

 

 

MOV C, D

4A

Копировать данные из D в C

 

 

 

MOV C, E

4B

Копировать данные из E в C

 

 

 

MOV C, H

4C

Копировать данные из H в C

 

 

 

MOV C, L

4D

Копировать данные из L в C

 

 

 

MOV C, M

4E

Копировать данные из M(HL) в C

 

 

 

MOV D, A

57

Копировать данные из A в D

 

 

 

MOV D, B

50

Копировать данные из B в D

 

 

 

MOV D, C

51

Копировать данные из C в D

 

 

 

MOV D, D

52

Копировать данные из D в D

 

 

 

MOV D, E

53

Копировать данные из E в D

 

 

 

MOV D, H

54

Копировать данные из H в D

 

 

 

MOV D, L

55

Копировать данные из L в D

 

 

 

MOV D, M

56

Копировать данные из M(HL) в D

 

 

 

MOV E, A

5F

Копировать данные из A в E

 

 

 

MOV E, B

58

Копировать данные из B в E

 

 

 

MOV E, C

59

Копировать данные из C в E

 

 

 

MOV E, D

5A

Копировать данные из D в E

 

 

 

MOV E, E

5B

Копировать данные из E в E

 

 

 

MOV E, H

5C

Копировать данные из H в E

 

 

 

MOV E, L

5D

Копировать данные из L в E

 

 

 

MOV E, M

5E

Копировать данные из M(HL) в E

 

 

 

MOV H, A

67

Копировать данные из A в H

 

 

 

MOV H, B

60

Копировать данные из B в H

 

 

 

MOV H, C

61

Копировать данные из C в H

 

 

 

MOV H, D

62

Копировать данные из D в H

 

 

 

MOV H, E

63

Копировать данные из E в H

 

 

 

MOV H, H

64

Копировать данные из H в H

 

 

 

MOV H, L

65

Копировать данные из L в H

 

 

 

MOV H, M

66

Копировать данные из M(HL) в H

 

 

 

MOV L, A

6F

Копировать данные из A в L

 

 

 

MOV L, B

68

Копировать данные из B в L

 

 

 

MOV L, C

69

Копировать данные из C в L

 

 

 

MOV L, D

6A

Копировать данные из D в L

 

 

 

MOV L, E

6B

Копировать данные из E в L

 

 

 

MOV L, H

6C

Копировать данные из H в L

 

 

 

MOV L, L

6D

Копировать данные из L в L

 

 

 

MOV L, M

6E

Копировать данные из M(HL) в L

 

 

 

MOV M, A

77

Копировать данные из A в M

 

 

 

MOV M, B

70

Копировать данные из B в M

 

 

 

MOV M, C

71

Копировать данные из C в M

 

 

 

MOV M, D

72

Копировать данные из D в M

 

 

 

MOV M, E

73

Копировать данные из E в M

 

 

 

MOV M, H

74

Копировать данные из H в M

 

 

 

MOV M, L

75

Копировать данные из L в M

 

 

 

MVI A, (d8)

3E

Записать байт в A

 

 

 

MVI B, (d8)

06

Записать байт в B

 

 

 

MVI C, (d8)

0E

Записать байт в C

 

 

 

MVI D, (d8)

16

Записать байт в D

 

 

 

MVI E, (d8)

1E

Записать байт в E

 

 

 

MVI H, (d8)

26

Записать байт в H

 

 

 

MVI L, (d8)

2E

Записать байт в L

 

 

 

MVI M, (d8)

36

Записать байт в M(HL)

 

 

 

NOP

00

Не выполнять никаких операций четыре такта

 

 

 

ORA A

B7

Произвести логичеcкую операцию ИЛИ между A и A,

сбросить перенос

 

 

 

 

 

ORA B

B0

Произвести логичеcкую операцию ИЛИ между A и B

 

 

 

ORA C

B1

Произвести логичеcкую операцию ИЛИ между A и C

 

 

 

ORA D

B2

Произвести логичеcкую операцию ИЛИ между A и D

 

 

 

ORA E

B3

Произвести логичеcкую операцию ИЛИ между A и E

 

 

 

ORA H

B4

Произвести логичеcкую операцию ИЛИ между A и H

 

 

 

ORA L

B5

Произвести логичеcкую операцию ИЛИ между A и L

 

 

 

ORA M

B6

Произвести логичеcкую операцию ИЛИ между A и M(HL)

 

 

 

ORI (d8)

F6

Произвести логичеcкую операцию ИЛИ между

аккумулятором и байтом данных

 

 

 

 

 

PCHL

E9

Выполнить команду по адресу в HL

 

 

 

POP B

C1

Извлечь двухбайтный операнд из стека в BC

 

 

 

POP D

D1

Извлечь двухбайтный операнд из стека в DE

 

 

 

POP H

E1

Извлечь двухбайтный операнд из стека в HL

 

 

 

POP PSW

F1

Извлечь двухбайтный операнд из стека в PSW

 

 

 

PUSH B

C5

Поместить в стек содержимое BC

 

 

 

PUSH D

D5

Поместить в стек содержимое DE

 

 

 

PUSH H

E5

Поместить в стек содержимое HL

 

 

 

PUSH PSW

F5

Поместить в стек содержимое PSW

 

 

 

RAL

17

Циклически сдвинуть CY + A влево

 

 

 

RAR

1F

Циклически сдвинуть CY + A вправо

 

 

 

RLC

07

Сдвинуть A влево на один разряд с переносом

 

 

 

RRC

0F

Сдвинуть A вправо на один разряд с переносом

 

 

 

RET

C9

Вернуться из подпрограммы безусловно

 

 

 

RZ

C8

Вернуться из подпрограммы, если FZ=0

 

 

 

RNZ

C0

Вернуться из подпрограммы, если FZ=1

 

 

 

RP

F0

Вернуться из подпрограммы, если FP=1

 

 

 

RM

F8

Вернуться из подпрограммы, если FP=0

 

 

 

RC

D8

Вернуться из подпрограммы, если FC=1

 

 

 

RNC

D0

Вернуться из подпрограммы, если FC=0

 

 

 

RPE

E8

Вернуться из подпрограммы, если паритет чётный

 

 

 

RPO

E0

Вернуться из подпрограммы, если паритет нечётный

 

 

 

RST 0

C7

Вызвать подпрограмму по адресу 0h

 

 

 

RST 1

CF

Вызвать подпрограмму по адресу 8h

 

 

 

RST 2

D7

Вызвать подпрограмму по адресу 10h

 

 

 

RST 3

DF

Вызвать подпрограмму по адресу 18h

 

 

 

RST 4

E7

Вызвать подпрограмму по адресу 20h

 

 

 

RST 5

EF

Вызвать подпрограмму по адресу 28h

 

 

 

RST 6

F7

Вызвать подпрограмму по адресу 30h

 

 

 

RST 7

FF

Вызвать подпрограмму по адресу 38h

 

 

 

SPHL

F9

Копировать данные из HL в SP

 

 

 

SHLD (adr)

22

Копировать данные из HL в M(adr)

 

 

 

STA (adr)

32

Копировать данные из A в M(adr)

 

 

 

STAX B

02

Копировать данные из A в M(BC)

 

 

 

STAX D

12

Копировать данные из A в M(DE)

 

 

 

STC

37

Установить флаг переноса (FC=1)

 

 

 

SUB A

97

Из А вычесть А

 

 

 

SUB B

90

Из А вычесть B

 

 

 

SUB C

91

Из А вычесть C

 

 

 

SUB D

92

Из А вычесть D

 

 

 

SUB E

93

Из А вычесть E

 

 

 

SUB H

94

Из А вычесть H

 

 

 

SUB L

95

Из А вычесть L

 

 

 

SUB M

96

Из А вычесть M(HL)

 

 

 

SUI (d8)

D6

Из аккумулятора вычесть байт данных

 

 

 

SBB A

9F

Из А вычесть А

 

 

 

SBB B

98

Из А вычесть B c заёмом

 

 

 

SBB C

99

Из А вычесть C c заёмом

 

 

 

SBB D

9A

Из А вычесть D c заёмом

 

 

 

SBB E

9B

Из А вычесть E c заёмом

 

 

 

SBB H

9C

Из А вычесть H c заёмом

 

 

 

SBB L

9D

Из А вычесть L c заёмом

 

 

 

SBB M

9E

Из А вычесть M(HL) c заёмом

 

 

 

SBI (d8)

DE

Из аккумулятора вычесть байт данных c заёмом

 

 

 

XCHG

EB

Обменять содержимое DE и HL

 

 

 

XTHL

E3

Обменять содержимое вершины стека с содержимым HL

 

 

 

XRA A

AF

Произвести логичеcкую операцию исключающее ИЛИ

между A и A

 

 

 

 

 

XRA B

A8

Произвести логичеcкую операцию исключающее ИЛИ

между B и A

 

 

 

 

 

XRA C

A9

Произвести логичеcкую операцию исключающее ИЛИ

между C и A

 

 

 

 

 

XRA D

AA

Произвести логичеcкую операцию исключающее ИЛИ

между D и A

 

 

 

 

 

XRA E

AB

Произвести логичеcкую операцию исключающее ИЛИ

между E и A

 

 

 

 

 

XRA H

AC

Произвести логичеcкую операцию исключающее ИЛИ

между H и A

 

 

 

 

 

XRA L

AD

Произвести логичеcкую операцию исключающее ИЛИ

между L и A

 

 

 

 

 

XRA M

AE

Произвести логичеcкую операцию исключающее ИЛИ

между M(HL) и A

 

 

 

 

 

XRI (d8)

EE

Произвести логичеcкую операцию исключающее ИЛИ

между байтом данных и аккумулятором

 

 

 

 

 

Регистр флагов

D7

D6

D5

D4

D3

D2

D1

D0

S

Z

 

AC

 

P

 

C

 

 

 

 

 

 

 

 

S – знак

Z – нуль

AC – вспомогательный перенос

P – чётность С – перенос

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