CODING ★ Dr.Watson - Autoformation à l'assembleur par Micro Application ★

Dr.Watson - Autoformation à l'assembleur par Micro Application - Annexe 1

A N N E X E 1

Le jeu d'instructions du Z80

Abréviations utilisées dans les tables suivantes:

Registres

r,r' = indique n'importe lequel des registres A,B,C,D,E,H,L.

dd = indique n'importe lequel des coudes de registres BC,DE,HL,SP

qq = indique n'importe lequel des couples de registres AF,BC,DE,HL

pp = indique n'importe lequel des couples de registres BC,DE,IX,SP

rr = indique n'importe lequel des couples de registres HC,DE,IX,SP

e = indique un (décalage) offset de complément à deux

s = indique soit r,n,(HL), (IX+d), IY+d) ou dans une instruction

d'index un (décalage) offset de complément à deux

H = Octet fort: L=0ctet faible

S = Où b=bit 0 7

Modes d'Adressage

RR = Registre - Registre

Im = Immédiat

IDX = Indexé

D = Direct

In = Indirect

Flags

C = Carry / flag de report

Z = Flag zéro

S = Flag signe

P/V = Flag parité ou dépassement

H = Flag demi-carry

N = Flag addition/soustraction

Modification des flags

? Flag fixé en fonction du résultat de l'opération

0 Flag annulé

1 Flag mis

* Flag non affecté

— Modification du flag imprévisible

V Flag mis si dépassement (overflow)

P Flag mis si parité

F Le flag P/V reçoit le contenu du flip-flop d'interruption (IFF)

Le flag P/V

Si l'opération indiquée par un V dans la colonne P/V se traduit par un dépassement, le flag V sera mis (1), sinon il sera annulé (0). Si l'opération a pour but de tester la parité, ce qui est indiqué par un P, le flag sera mis si la parité est paire et annulé si la parité est impaire.

Modes d'adressage

LD r,r' Registre registre

LD r,n Immédiat

LD r,(IX+d) Indexé

LD r,(nn) Direct

LD r,(dd) Indirect

r ou r' est un registre 8 bits

n est un registre 8 bits

d est un décalage de complément à

nn est un nombre 16 bits

dd est BC, DE, HL ou SP.

GROUPE LOAD 8 BITS
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

LD r,r'

LD r,n

LD r,(HL)

LD r,(IX+d)

LD r,(IY+d)

LD (HL),r

LD (IX+d),r

LD (IY+d),r

LD (HL),n

LD (IX+d),n

LD (IY+d),n

LD A,(BC)

LD A,(DE)

LD A,(nn)

LD (BC),A

LD (DE),A

LD (nn),A

LD A,I

LD A,R

LD I,A

LD R,A

r ßr'

r ßn

r ß(HL)

r ß(IX+d)

r ß(IY+d)

(HL)ßr

(IX+d)ßr

(IY+d)ßr

(HL)ßn

(IX+d)ßn

(IY+d)ßn

Aß(BC)

Aß(DE)

Aß(nn)

(BC)ßA

(DE)ßA

(nn)ßA

AßI

AßR

IßA

RßA

1

2

1

3

3

1

3

3

2

4

4

1

1

3

1

1

3

2

2

2

2

1

2

2

5

5

2

5

5

3

5

5

2

2

4

2

2

4

2

2

2

2

RR

Im

In

IDX

IDX

In

IDX

IDX

In

IDX

IDX

In

In

D

In

In

D

RR

RR

RR

RR

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* ? F ? 0 0

* ? F ? 0 0

* * * * * *

* * * * * *

GROUPE LOAD 16 BITS
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

LD dd,nn

LD IX,nn

LD IY,nn

LD HL,(nn)

LD dd,(nn)

LD IX,(nn)

LD IY,(nn)

LD (nn),HL

LD (nn),dd

LD (nn),IX

LD (nn),IY

ddßnn

IXßnn

IYßnn

Hß(nn+1)

Lß(nn)

ddß(nn+1)

ddß(nn)

IXß(nn+1)

IXß(nn)

IYß(nn+1)

IYß(nn)

(nn+1)ßH

(nn)ßL

(nn+1)ßdd

(nn)ßdd

(nn+1)ßIX

(nn)ßIX

(nn+1)ßIY

(nn)ßIY

3

4

4

3

4

4

4

3

4

4

4

3

4

4

5

6

6

6

5

6

6

6

Im

Im

Im

D

D

D

D

D

D

D

D

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

LD SP,HL

LD SP,IX

LD SP,IY

PUSH qq

PUSH IX

PUSH IY

POP qq

POP IX

POP IY

SPßHL

SPßIX

SPßIY

(SP-1)ßqq

(SP-2)ßqq

(SP-1)ßIX

(SP-2)ßIX

(SP-1)ßIY

(SP-2)ßIY

qqß(SP)

qqß(SP+1)

IXß(SP)

IXß(SP+1)

IYß(SP)

IYß(SP+1)

1

2

2

1

2

2

1

2

2

1

2

2

3

4

4

3

4

4

RR

RR

RR

Im

Im

Im

Im

Im

Im

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE ECHANGE – GROUPE TRANSFERT – RECHERCHE DE BLOC
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

EX DE,HL

EX AF,AF'

EXX

EX (SP),HL

EX (SP),IX

EX (SP),IY

LDI

LDIR

LDD

DEßà HL

AFßà AF'

(BC (BC'

DE ßà DE'

HL) HL')

Hßà (SP+1)

Lßà (SP)

IXßà (SP+1)

IXßà (SP)

IYßà (SP+1)

IYßà (SP)

(DE)ß(HL)

DEßDE+1

HLßHL+1

BCßBC-1

(DE)ß(HL)

DEßDE+1

HLßHL+1

BCßBC-1

JUSQUE

BC=0

(DE)ß(HL)

DEßDE-1

HLßHL-1

BCßBC-1

1

1

1

1

2

2

2

2

2

1

1

1

5

6

6

4

5

4

RR

RR

RR

RR

RR

RR

In

In

In

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * ? * 0 0

* * 0 * 0 0

* * ? * 0 0

LDDR

CPI

CPIR

CPD

CPDR

(DE)ß(HL)

DE ß DE-1

HL ß HL-1

BC ß BC-1

JUSQUE

BC=0

A-(HL)

HLßHL+1

BCßBC-1

A-(HL)

HLßHL+1

BCßBC-1

JUSQUE

A=(HL) OU

BC=0

A-(HL)

HLßHL-1

BCßBC-1

A-(HL)

HLßHL-1

BCßBC-1

JUSQUE

A=(HL) OU

BC=0

2

2

2

2

2

5

4

5

4

5

In

In

In

In

In

* * 0 * 0 0

* ? ? ? ? ?

* ? ? ? ? ?

* ? ? ? ? ?

* ? ? ? ? ?

GROUPE ARITHMETIQUE ET LOGIQUE 8 BITS
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

ADD A,r

ADD A,n

ADD A,(HL)

ADD A,(IX+d)

ADD A,(IY+d)

ADC A,s

SUB A,s

SBC A,s

AND s

OR s

XOR s

CP s

INC

INC(HL)

INC(IX+d)

INC(IY+d)

DEC d

AßA+r

AßA+n

AßA+(HL)

AßA+(IX+d)

AßA+(IY+d)

AßA+s+CY

AßA-s

AßA-s-CY

AßA s

AßA s

AßA,s

A-s

r-r+1

(HL)ß(HL)+1

(IX+d)ß(IX+d)+1

(IY+d)ß(IY+d)+1

dßd-1

1

2

1

3

3

1

1

3

3

1

2

2

5

5

1

3

6

6

Im

Im

In

IDX

IDX

Im

Im

Im

Im

Im

Im

Im

Im

In

IDX

IDX

Im

? ? V ? 0 ?

? ? V ? 0 ?

? ? V ? 0 ?

? ? V ? 0 ?

? ? V ? 0 ?

? ? V ? 0 ?

? ? V ? 1 ?

? ? V ? 1 ?

0 ? P ? 0 1

0 ? P ? 0 1

0 ? P ? 0 1

? ? V ? 1 ?

* ? V ? 0 ?

* ? V ? 0 ?

* ? V ? 0 ?

* ? V ? 0 ?

* ? V ? 1 1

GROUPE ARITHMETIQUE GENERALE ET CONTROLE UNITE CENTRALE
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

DAA

cnvertit

A en BCD

arès

addition

ou sous-

traction

sur oper.

BCD

CPL

NEG

CCF

SCF

NOP

HALT

DI

EI

IM0

IM1

im3

_

AßA

AßO-A __

CYßCY

CYß1

Pas d'opération

CPU halte

IFFß0

IFFß1

Mettre

Interruption

Mode 0

Interruption

Mode 1

Interruption

Mode 2

1

1

2

1

1

1

1

1

1

2

2

2

1

1

2

1

1

1

1

1

1

2

2

2

Im

Im

Im

Im

Im

Im

Im

Im

Im

Im

Im

Im

? ? P ? * *

* * * * 1 1

? ? V ? 1 ?

? * * * 0 *

1 * * * 0 0

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE ARITHMETIQUE 16 BITS
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

ADD HL,dd

ACD HL,dd

SBC HL,dd

ADD IX,pp

ADD IY,rr

INC dd

INC IX

INC IY

DEC dd

DEC IX

DEC IY

HLßHL+dd

HLßHL+dd+CY

HLßHL-dd-CY

IXßIX+pp

IYßIY+rr

ddßdd+1

IXßIX+1

IYßIY+1

ddßdd-1

IXßIX-1

IYßIY-1

1

2

2

2

2

1

2

2

1

2

2

3

4

4

4

4

1

2

2

1

2

2

Im

Im

Im

Im

Im

Im

Im

Im

Im

Im

Im

? * * * 0 -

? ? V ? 0 -

? ? V ? 1 -

? * * * 0 -

? * * * 0 -

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE ROTATION ET DECALAGE
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

RLCA

RLA

RRCA
RRA

RLCr
RLC(HL)
RLC(IX+d)
RLC(IY+d)

RL s

RRC s

RR s

SLA s

SRA s

SRL s

RLD

RRD

1

1

1
1

2
2
4
4

-

-

-

-

-

-

2

2

1

1

1
1

2
4
6
6

-

-

-

-

-

-

5

5

Im

Im

Im
Im

Im
Im
Im
Im

Im

Im

Im

Im

Im

Im

Im

Im

? * * * 0 0

? * * * 0 0

? * * * 0 0
? * * * 0 0

? ? P ? 0 0
? ? P ? 0 0
? ? P ? 0 0
? ? P ? 0 0

? ? P ? 0 0

? ? P ? 0 0

? ? P ? 0 0

? ? P ? 0 0

? ? P ? 0 0

? ? P ? 0 0

* ? P ? 0 0

* ? P ? 0 0

GROUPE MISE, ANNULATION ET TEST DE BIT
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

Bit 6,r

Bit 6,(HL)

Bit 6,(IY+d)

Bit 6,(IY+d)

Set 6,r

Set 6,(HL)

Set 6,(IX+d)

Set 6,(IY+d)

Set 6,s

Z<--r

Z<--(HL)

Z<--(IY+d)

Z<--(IY+d)

r<--1

(HL)<--1

(IX+d)<--1

(IY+d)<--1

s<--0

2

2

4

4

2

2

4

4

-

2

3

5

5

2

4

6

6

RR

In

IDX

IDX

RR

In

IDX

IDX

RR

* ? - - 0 1

* ? - - 0 1

* ? - - 0 1

* ? - - 0 1

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE DE JUMP (SAUT)
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

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)

DJNZ e

PX<--nn

Si condition

cc vraie

PC<--nn

sinon continue

PC<--PC+e

Si c=0 continue

Si c=1 continue

Si z=0 continue

Si z=1 continue

PC<--HL

PC<--IX

PC<--IY

B<--B-1

Si B=0 continue

B=0

PC<--PC+e

3

3

2

2

2

2

2

1

2

2

2

3

3

3

2

2

2

2

1

2

2

3

Im

Im

Im

Im

Im

Im

Im

In

IDX

IDX

Im

* * * * * *

* * * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE CALL ET RETURN
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

CALL n

CALL cc,nn

RET

RET cc

RETI

RETN

RET P

(SP-1)<--PC

(SP-2)<--PC

Si condition

cc fausse,

continuer sinon

comme CALL nn

PC<--(SP)

PC<--(SP+1)

Si condition

cc fausse,

continuer sinon

comme RET

Retour

d'interruption

Retour

d'interruption

non masquable

(SP-1)<--PC

(SP-2)<--PC

PC<--0

PC<--P

3

3

1

1

2

2

1

5

3

3

1

4

4

3

Im

Im

Im

Im

Im

Im

Im

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

* * * * * *

GROUPE ENTREE ET SORTIE
MnémoniqueOpération

Symbolique

Nbre

d'octets

Nbre de

cycles

Mode d'

adressage

Flags affectés

C Z P/V S N H

IN A,(n)

IN r,(c)

INI

INIR

IND

INDR

A<--(n)

r<--(c)

(HL)<--(c)

B<--B-1

HL<--HL+1

(HL)<--(c)

B<--B-1

HL<--HL+1

JUSQUE B=0

(HL)<--(c)

B<--B-1

HL<--HL-1

(HL)<--(c)

B<--B-1

HL<--HL-1

JUSQUE B=0

2

2

2

2

2

2

3

3

4

5

4

5

Im

In

In

In

In

In

* * * * * *

* ? P ? 0 ?

* ? - - 1 -

* 1 - - 1 -

* ? - - 1 -

* 1 - - 1 -

OUT (n),A

OUT (c),r

OUTI

OUTIR

OUTD

OTDR

(n)<--A

(c)<--r

(c)<--(HL)

B<--B-1

HL<--HL+1

(c)<--(HL)

B<--B-1

HL<--HL+1

JUSQUE B=0

(c)<--(HL)

B<--B-1

HL<--HL-1

(c)<--(HL)

B<--B-1

HL<--HL-1

JUSQUE B=0

2

2

2

2

2

2

3

3

4

5

4

5

Im

In

In

In

In

In

* * * * * *

* * * * * *

* ? - - 1 -

* 1 - - 1 -

* ? - - 1 -

* 1 - - 1 -

★ ANNÉES: 1985
★ AUTEUR: T. Hebertson
★ CONVERTION: CRACKERS VELUS

 
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 201 millisecondes et consultée 1348 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.