Микропроцессорный комплект Z80. Книга 1 1990 г.

Система команд - таблица групп команд.


Таблица 5.1.1. 8-битовые команды загрузки

Команда

T

Код

Пояснения

C Z P S N H

LD r1,r2
LD r,(HL)
LD (HL),r
LD r,n

LD (HL),n

4
7
7
7

10

01 r1 r2
01 r 110
01 110 r
00 r 110

- n -
00 110 110

- n -

r1 ^ r2
r ^ (HL)
(HL) ^ r
r ^ n

(HL) ^ n

LD r,(IX+d)
LD r,(IY+d)
LD {IX+d),r
LD (IY+d),r

19
19
19
19

11 011 101
01 r 110
- d -
11 111 101
01 r 110
- d -
11 011 101
01 110 r
- d -
11 111 101
01 110 r
- d -

r ^ (IX+d)
r ^ (1Y+d)
(IX+d) ^ r
(IY+d) ^ r

LD (IX+d),n
LD (IY+d),n

19
19

11 011 101
00 110 110
- d -

- n -
11 111 101
00 110 110

- d -
- n -

(IX+d) ^ n
(IY+d) ^ n

LD A,(BC)
LD A,(DE)
LD A,(nn)

7
7
13

00 001 010
00 011 010
00 111 010

- n -

- n -

A ^ (BC)
A ^ (DE)
A ^ (nn)

LD (BC),A
LD (DE),A
LD (nn),A

7
7
13

00 000 010
00 010 010
00 110 010

- n -

- n -

(BC) ^ А
(DE) ^ A
(nn) ^ A

LD A,I
LD A,R
LD I,A
LD R,A

9
9
9

11 101 101
01 010 111
11 101 101
01 011 111
11 101 101
01 000 111
11 101 101
01 001 111

A ^ I
A ^ R
I ^ A
R ^ A

? IF ? 0 0
? IF ? 0 0

Таблица 5.1.2. 16-битовые команды загрузки

Команда

T

Код

Пояснения

C Z P S N H

LD dd,nn
LD IX,nn

LD IY,nn

LD HL,(nn)

10
14

14

16

00 dd0 001

- n -

- n -
11 011 101
00 100 001

- n -

- n -
11 111 101
00 100 001

- n -

- n -
00 101 010

- n -

- n -

dd ^ nn
IX ^ nn

IY ^ nn

H ^ (nn+1) L ^ (nn)

Команда

T

Код

Пояснения

C

Z

P S N

H

LD dd,(nn)

20

11
01

101
dd1
n

101
011

ddH ^ (nn+1)
ddL ^ (nn)

LD IX,(nn)

20

11

00

n
011
101
n

101
010

IXH ^ (nn+1)
IXl ^ (nn)

LD IY,(nn)

20

11

00

n
111
101
n
n

101
010

IYH ^ (nn+1)
IYl ^ (nn)

LD (nn),HL

16

00

100
n

010

(nn+1) ^ H (nn) ^ L

LD (nn),dd

20

11
01

n
101
dd0
n

101
011

(nn+1) ^ ddH
(nn) ^ ddL

LD (nn),IX

20

11

00

n
011
100
n

101
010

(nn+1) ^ IXH
(nn) ^ IXl

LD (nn),IY

20

11

00

n
111
100
n
n

101
010

(nn+1) ^ IYH
(nn) ^ IYl

LD SP,HL
LD SP,IX

LD SP,IY

PUSH qq

PUSH IX

PUSH IY

POP qq

POP IX

POP IY

6
10

10

11

15

15

10

14

14

11
11
11
11
11
11

11
11
11
11
11

11
11
11
11

111
011
111
111
111
qq0

011
100
111
100
qq0

011
100
111
100

001
001
001
001
001
101

101
101
101
101
001

101
001
101
001

SP ^ HL
SP ^ IX

SP ^ IY

(SP-2) ^ qqL
(SP-1) ^ qqH
(SP-2) ^ IXL
(SP-1) ^ IXH
(SP-2) ^ IYL
(SP-1) ^ IYH
qqH ^ (SP+1)
qqL ^ (SP)
IXH ^ (SP+1)
IXL ^ (SP)
IYH ^ (SP+1)
IYl ^ (SP)

Таблица 5.1.З. Команды обработки блоков

Команда

T

Код

Пояснения

C

Z

P S N

H

LDI
LDIR

LDD

16

21
(16)

16

11
10

11
10

11
10

101
100

101
110

101
101

101

000

101

000

101

000

(DE) ^ (HL)
затем DE ^ DE+1
HL ^ HL+1
BC ^ BC-1
(DE) ^ (HL)
затем DE ^ DE+1
HL ^ HL+1
BC ^ BC-1
и повтор до BC=0
(DE) ^ (HL)
затем DE ^ DE-1
HL ^ HL-1
BC ^ BC-1

P=
P=

P=
P=

? 0
=0, если BC-1=0
=1, если BC-1^0

0 0

? 0
=0, если BC-1=0
=1, если BC-1^0

0
0

0

Команда

T

Код

Пояснения

C

Z

P

S

N

H

LDDR

21

11

101

101

(DE) ^ (HL)

0

0

0

(16)

10

111

000

затем DE ^ DE-1

HL ^ HL-1

BC ^ BC-1

и повтор до BC=0

CPI

16

11

101

101

A-(HL)=?

?

?

?

1

?

затем HL ^ HL+1

Z=

1, если A=(HL)

ВС^ВС-1

Z=0, если A^(HL)

Р=

0, если BC-1

=0

Р=

=1, если BC-1^0

CPIR

21

11

101

101

A-(HL)=?

?

?

?

1

?

(16)

10

110

001

затем HL ^ HL+1

Z=

1, если A=(HL)

ВС^ВС-1

Z=0, если A^(HL)

и повтор по BC=0

Р=

0, если BC-1

=0

или A=(HL)

Р=

=1, если BC-1^0

CPD

16

11

101

101

A-(HL)=?

?

?

?

1

?

10

101

001

затем HL ^ HL-1

Z=

1, если A=(HL)

ВС^ВС-1

Z=0, если A^(HL)

Р=

0, если BC-1

=0

Р=

=1, если BC-1^0

CPDR

21

11

101

101

A-(HL)=?

?

?

?

1

?

(16)

10

111

001

затем HL ^ HL-1

Z=

1, если A=(HL)

ВС^ВС-1

Z=0, если A^(HL)

и повтор по BC=0

Р=

0, если BC-1

=0

или A=(HL)

Р=

=1, если BC-1^0

Таблица 5.1.4. 8-битовые арифметические и логические команды

Команда

T

Код

Пояснения

C

Z

P

S

N

H

ADD A,r

4

10

000

r

A ^ A+r

?

?

V

?

0

?

ADD A,n

7

11

110

A ^ A+n

?

?

V

?

0

?

ADD A,(HL)

7

10

n

000

110

A ^ A+(HL)

?

?

V

?

0

?

ADD A,(IX+d)

19

11

011

101

A ^ A+(IX+d)

?

?

V

?

0

?

10

000

110

-

d

-

ADD A,(IY+d)

19

11

111

101

A ^ A+(IY+d)

?

?

V

?

0

?

10

000

110

-

d

-

ADC A,s

001

A ^ A+s+C

?

?

V

?

0

?

SUB s

010

A ^ A-s

?

?

V

?

1

?

SBC A,s

011

A ^ A-s-C

?

?

V

?

1

?

AND s

100

A ^ A AND s

0

?

P

?

0

1

OR s

110

A ^ A OR a

0

?

P

?

0

0

XOR s

101

A ^ A XOR a

0

?

P

?

0

0

CP s

111

A-s=?

?

?

V

?

1

?

Код подставляется

вместо 000

в командах

INC r

4

00

r

100

г ^ r+1

?

V

?

0

?

INC (HL)

11

00

110

100

(HL) ^ (HL) + 1

?

V

?

0

?

INC (IX+d)

23

11

011

101

(IX+d) ^ (IX+d)+1

?

V

?

0

?

00

110

100

-

d

-

INC (IY+d)

23

11

111

101

(IY+d) ^ (IY+d)+1

?

V

?

0

?

00

110

100

-

d

-

DEC t

101

t ^ t-1

?

V

?

1

?

Код подставляется

вместо 100

в командах INC

Команда

T

Код

Пояснения

C

Z

P

S

N

H

DAA

4

00

100

111

Двоично-десятичная

?

?

P

?

?

коррекция A

CPL

4

00

101

111

A ^ инверсия A

1

1

NEG

8

11

101

101

А ^ -А

?

?

V

?

1

?

01

000

100

CCF

4

00

111

111

C ^ инверсия C

?

0

X

SCF

4

00

110

111

C ^ 1

1

0

0

Таблица 5.1.5. 16 битовые арифметические команды

Команда

T

Код

Пояснения

C

Z

P

S

N

H

ADD HL,dd

11

00

dd1

001

HL ^ HL+dd

?

0

X

ADC HL,dd

15

11

101

101

HL ^ HL+dd+C

?

?

V

?

0

X

01

dd1

010

SBC HL,dd

15

11

101

101

HL ^ HL-dd-C

?

?

V

?

1

X

01

dd0

010

ADD IX,pp

15

11

011

101

IX ^ IX+pp

?

0

X

00

pp1

001

ADD IY,rr

15

11

111

101

IY ^ IY+rr

?

0

X

00

rr1

001

INC dd

6

00

dd0

011

dd ^ dd+1

INC IX

10

11

011

101

IX ^ IX+1

00

100

011

INC IY

10

11

111

101

IY ^ IY+1

00

100

011

DEC dd

6

00

dd1

011

dd ^ dd-1

DEC IX

10

11

011

101

IX ^ IX-1

00

101

011

DEC IY

10

11

111

101

IY ^ IY-1

Таблица 5.1.6. Команд]
Команда

JP nn

JP cc,nn

JR e
JR C,e

JR NC,e

JR Z,e

JR NZ,e

JP (HL)
JP (IX)

JP (IY)

ы перехс
T
10

10

12
12
(7)
12
(7)
12
(7)
12
(7)

4
8

8

00
дов

11

11

00
00

00

00

00

11
11
11
11
11

101

Код

000
n
n
cc
n
n
011
e-2
111

e-2

110

e-2

101

e-2

100

e-2

101
011
101
111
101

011

011

010

000
000

000

000

000

001
101
001
101
001

Пояснения

PC ^ nn

PC ^ nn, если
условие выполняется
PC ^ PC+3, если нет
PC ^ PC+e

PC ^ PC+e, еcли
C=1

PC ^ PC+2, если
C=0

PC ^ PC+e, если
C=0

PC ^ PC+2, если
C=1

PC ^ PC+e, если
Z=1

PC ^ PC+2, если
Z=0

PC ^ PC+e, если
Z=0

PC ^ PC+2, если
Z=1

PC ^ HL
PC ^ IX
PC ^ IY

C

Z

P

S

N

H

Команда

T

Код

Пояснения

C Z P S N H

DJNZ e

13
(8)

00 010 000
- e-2 -

B ^ B-1,

при B=0 PC ^ PC+2
при B^0 PC ^ PC+e

Таблица 5.1.7 Команды для работы с битами

Команда

T

Код

Пояснения

C Z

P

S

N

H

BIT b,r

8

11 001

011

Z ^ инверсия rb

?

X

X

0

1

01 b

r

BIT b,(HL)

12

11 001

011

Z ^ инверсия (HL)b

?

X

X

0

1

01 b

110

BIT b,(IX+d)

20

11 011

101

Z ^ инверсия (IX+d)b

?

X

X

0

1

11 001

011

- d

-

01 b

110

BIT b,(IY+d)

20

11 111

101

Z ^ инверсия (IY+d)b

?

X

X

0

1

11 001

011

- d

-

01 b

110

SET b.r

8

11 001

011

rb ^ 1

11 b

r

SET b,(HL)

15

11 001

011

(HL)b ^ 1

11 b

110

SET b,(IX+d)

23

11 011

101

(IX+d)b ^ 1

11 001

011

- d

-

11 b

110

SET b,(IY+d)

23

11 111

101

(IY+d)b ^ 1

11 001

011

- d

-

11 b

110

RES b,t

10

tb ^ 0. Код 10

подставляется вместо

11 в командах SET

Таблица 5.1.8 Команды обмена

Команда

T

Код

Пояснения

C Z P S N H

EX DE,HL

4

11

101

011

DE ~ HL

EX AF,AF'

4

00

001

000

AF ~ AF'

EXX

4

11

011

001

BC ~ ВС' DE ~ DE'

HL ~ HL'

EX (SP),HL

19

11

100

011

H ~ (SP+1) L ~ (SP)

EX (SP),IX

23

11

011

101

IXh ~ (SP+1)

11

100

011

IXL ~ (SP)

EX (SP),IY

23

11

111

101

IYh ~ (SP+1)

11

100

011

IYl ~ (SP)

Таблица 5.1.9. Команды ввода вывода

Команда

T

Код

Пояснения

C Z

P

S

N

H

IN A,(n)

11

11

011

011

A ^ (n) ADR ^ A/n

IN r,1C)

12

11

n
101

101

r ^ (C) ADR ^ B/C

?

P

?

0

?

01

r

000

INF

12

11

101

101

F ^ (C) ADR ^ B/C

?

P

?

0

?

01

110

000

F-регистр флагов

INI

16

11

101

101

(HL)^(C) ADR^B/C

?

X

X

1

X

10

100

010

затем B ^ B-1

Z=

1, если B-

1=0

HL ^ HL+1

Z=0, если B-1^0

INIR

21

11

101

101

(HL)^(C) ADR^B/C

1

X

X

1

X

(16)

10

110

010

затем B ^ B-1

HL ^ HL+1

и повтор до B=0

IND

16

11

101

101

(HL)^(C) ADR^B/C

?

X

X

1

X

10

101

010

затем B ^ B-1

Z=

1, если B-

1=0

HL ^ HL-1

Z=0, если B-1^0

Для некоторых команд в колонке T указано два значения - без скобок и в скобках:

- для условных команд JR, CALL, RET в скобках указано количество тактов выполнения
команды при невыполнении условия;

- для "цикличных" команд DJNZ, LDIR, LDDR, CPIR, CPDR, INIR, INDR, OTIR. OTDR в
скобках указано количество тактов, за которое выполняется команда в последний (перед
завершением) раз.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - бесплатная реклама и обьявления.
Наши Этюды - Я давно отошел от Спектрума и все мои статьи носят скорее теоретический характер.
Вступление - содержание номера.
Интервью - Интервью с московским музыкантом KUNF.
Железо - обзор микропроцессора Zilog Z380, продолжение.

В этот день...   21 ноября