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 Où 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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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émonique | Opé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 - |
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 793 millisecondes et consultée 1357 foisL'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. |
|