Ensemble d'instructions z80 (complet)
La documentation la plus...complète sur les instructions du z80

    Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.

Mnemonic:    Description:
ADC          ADD WITH CARRY
ADD          ADD
AND          AND LOGIQUE
BIT          BIT TEST
CALL         CALL SUB ROUTINE
CCF          COMPLEMENT CARRY FLAG
CP           COMPARE
CPD          COMPARE ET DÉCRÉMENTE
CPDR         COMPARE DÉCRÉMENTE ET RÉPÈTE
CPI          COMPARE ET INCRÉMENTE
CPIR         COMPARE INCRÉMENTE ET RÉPÈTE
CPL          COMPLÈTE L'ACCUMULATEUR
DAA          AJUSTEMENT DÉCIMAL DE L'ACCUMULATEUR (sert dans le calcul avec des décimaux :)
DEC          DÉCRÉMENTE
DI           DÉSACTIVE LES INTERRUPTIONS
DJNZ         DEC JUMP NON-ZERO
EI           ACTIVE LES INTERRUPTIONS
EX           ÉCHANGE DEUX PAIRES DE REGISTRES ENTRE ELLES
EXX          EXCHANGE ALTERNATE REGISTERS
HALT         HALTE, ATTENDS UNE INTERRUPTION, OU RESET
IM           MODE D'INTERRUPTION 0 1 2
IN           INPUT FROM PORT
INC          INCRÉMENTE
IND          INPUT, DÉCRÉMENTE HL, DÉCRÉMENTE B
INDR         INPUT, DÉCRÉMENTE HL, DÉCRÉMENTE B, RÉPÈTE SI B>0
INI          INPUT, INCRÉMENTE HL, DÉCRÉMENTE B
INIR         INPUT, INCRÉMENTE HL, DÉCRÉMENTE B, RÉPÈTE SI B>0
JP           JUMP
JR           JUMP RELATIF
LD           CHARGE DES DONNÉES DE/VERS LES REGISTRES/LA MÉMOIRE
LDD          CHARGE, DÉCRÉMENTE
LDDR         CHARGE, DÉCRÉMENTE ET RÉPÈTE
LDI          CHARGE, INCRÉMENTE
LDIR         CHARGE, INCRÉMENTE ET RÉPÈTE
NEG          NEGATE ACCUMULATOR 2'S COMPLEMENT
NOP          AUCUNE OPÉRATION
OR           --
OTDR         OUTPUT, DÉCRÉMENTE HL, DÉCRÉMENTE B, RÉPÈTE SI B>0
OTIR         OUTPUT, INCRÉMENTE HL, DÉCRÉMENTE B, RÉPÈTE SI B>0
OUT          OUTPUT TO PORT
OUTD         OUTPUT, DÉCRÉMENTE HL, DÉCRÉMENTE B
OUTI         OUTPUT, INCRÉMENTE HL, DÉCRÉMENTE B
POP          ÉJECTE DE LA PILE
PUSH         POUSSE DANS LA PILE
RES          RESET LE BIT
RET          REVIENS D'UNE SOUS-ROUTINE
RETI         REVIENS D'UNE INTERRUPTION
RETN         REVIENS D'UNE INTERRUPTION NON MASQUABLE
RL           ROTATION VERS LA GAUCHE D'UN registre
RLA          ROTATION VERS LA GAUCHE DE L'ACCUMULATEUR
RLC          ROTATE LEFT THROUGH CARRY register
RLCA         ROTATE LEFT THROUGH CARRY ACCUMULATOR
RLD          ROTATE LEFT DIGIT
RR           ROTATION VERS LA DROITE DU registre
RRA          ROTATION VERS LA DROITE DE L'ACCUMULATEUR
RRC          ROTATE RIGHT CIRCULAR register
RRCA         ROTATE RIGHT CIRCULAR ACCUMULATOR
RRD          ROTATE RIGHT DIGIT
RST          RESTART
SBC          SUBTRACT WITH CARRY
SCF          SET CARRY FLAG
SET          SET BIT
SLA          SHIFT LEFT ARITHMETIC register
SRA          SHIFT RIGHT ARITHMETIC register
SRL          SHIFT RIGHT LOGICAL register
SUB          SOUSTRACTION
XOR          OR EXCLUSIF

Détails sur ADC
ADD WITH CARRY

 

Détails sur ADD


Détails sur AND
AND LOGIQUE


Détails sur BIT
BIT TEST


Détails sur CALL
APPELLE une sous-routine


Détails sur CCF
Opération: CY = Inv CY
Format d'instruction:
Opcode: CCF
OBJ: 3Fh
Description:
Le Carry flag du registre des flags est inversé.
Tstates: 4.
Flags:
    S: Non assigné.
    Z: Non assigné.
    H: Le carry précédent sera copié dans H.
    P/V: Non assigné.
    N: Reset.
    C: Set si le carry valait 0 avant l'opération, sinon reset.

Détails sur CP
COMPARE

Détails sur CPD
COMPARE ET DÉCRÉMENTE

Détails sur CPDR
COMPARE DÉCRÉMENTE ET RÉPÈTE

Flags: CY Z PV S N H
       .  ~ ~  ~ 1 ~ (~ = changes, . = no change)

And the flags: si un octet est trouvé: Z=1; HL - adresse de l'octet suivant;
                                   BC - trouvez vous-même.
                           non trouvé: Z=0

Détails sur CPI
COMPARE ET INCRÉMENTE


Détails sur CPIR
COMPARE INCRÉMENTE ET RÉPÈTE

Flags: CY Z PV S N H
       .  ~ ~  ~ 1 ~ (~ = changement, . = pas de changement)

Et les flags: si un octet est trouvé: Z=1; HL - adresse du prochain octet;
                                    BC - trouvez vous-même.
                          non trouvé: Z=0
I believe, that if on exit BC=0 then PV=0 else PV=1, that's so with CPI
(CPD) command, so why shouldn't it be with CPIR (CPDR)?

So the difference between if a byte, is or is not found, is expressed
by the Zero flag. Sorry, don't know exactly how are S and H affected...


Détails sur CPL
COMPLÈTE L'ACCUMULATEUR

Détails sur DAA
Format d'instruction:
OPCODE                    CYCLES
--------------------------------
 27h                        4


Description:
Cette instruction ajuste conditionnellement la valeur contenue dans l'accumulateur
pour les additions et soustractions BCD (Binary Coded Decimal, décimal à codage binaire).
Pour les additions (ADD, ADC, INC) ou les soustractions (SUB, SBC, DEC, NEC), le tableau
suivant indique l'opération effectuée:

--------------------------------------------------------------------------------------
|           | Flag C | Valeur HEX du   | Flag H | Valeur HEX du   | Nombre  | Flag C |
| Opération | avant  |chiffre supérieur| avant  |chiffre inférieur| ajouté à| après  |
|           | DAA    | (bit 7-4)       | DAA    | (bit 3-0)       | l'octet | DAA    |
|------------------------------------------------------------------------------------|
|           |   0    |     0-9         |   0    |     0-9         |   00    |   0    |
|   ADD     |   0    |     0-8         |   0    |     A-F         |   06    |   0    |
|           |   0    |     0-9         |   1    |     0-3         |   06    |   0    |
|   ADC     |   0    |     A-F         |   0    |     0-9         |   60    |   1    |
|           |   0    |     9-F         |   0    |     A-F         |   66    |   1    |
|   INC     |   0    |     A-F         |   1    |     0-3         |   66    |   1    |
|           |   1    |     0-2         |   0    |     0-9         |   60    |   1    |
|           |   1    |     0-2         |   0    |     A-F         |   66    |   1    |
|           |   1    |     0-3         |   1    |     0-3         |   66    |   1    |
|------------------------------------------------------------------------------------|
|    SUB    |   0    |     0-9         |   0    |     0-9         |   00    |   0    |
|    SBC    |   0    |     0-8         |   1    |     6-F         |   FA    |   0    |
|    DEC    |   1    |     7-F         |   0    |     0-9         |   A0    |   1    |
|    NEG    |   1    |     6-F         |   1    |     6-F         |   9A    |   1    |
|------------------------------------------------------------------------------------|

Flags:
C: Voir l'instruction.
N: Non assigné.
P/V: Set si l'accumulateur contient une valeur paire, sinon reset.
H: Voir l'instruction.
Z: Set si l'accumulateur est à zéro après l'opération, sinon reset.
S: Set si le bit le plus significatif de l'accumulateur vaut 1 après l'opération, sinon reset.

Exemple:

Quand une addition entre 15 (BCD) et 27 (BCD), l'arithmétique décimale simple nous donne:

 15
+27
----
 42

Mais lorsque les équivalents en binaire sont additionnés dans l'accumulateur en suivant
l'arithmétique binaire:

 0001 0101 15
+0010 0111 27
---------------
 0011 1100 3C

La somme est fausse. L'instruction DAA ajuste le résultat pour que la représentation BCD correcte soit obtenue:

0011 1100 3C résultat
+0000 0110 06 +erreur
---------------
0100 0010 42 Correct BCD!


Détails sur DEC
DÉCRÉMENTE


Détails sur DI
DÉSACTIVE LES INTERRUPTIONS


Détails sur DJNZ
DEC JUMP NON-ZERO


Détails sur EI
ACTIVE LES INTERRUPTIONS


Détails sur EX
ÉCHANGE DES PAIRES DE REGISTRES

ASM: EX DE,HL
OBJ: EBh
Tstates : 4.


ASM: EX AF,AF'
OBJ: 08h
Tstates : 4.


Description:
Les valeurs 16 bits dans les deux registres sont échangées.
note: la paire de registres AF est constituée du registre a et du registre de flags F


ASM: EX (SP),HL
OBJ: E3h
Tstates : 19.


Description:
L'octet d'ordre bas contenu dans la paire de registres HL est échangé contre le contenu d'une certaine
adresse mémoire spécifiée dans la paire de registres SP (Stack Pointer, pointeur de pile),
et l'octet d'ordre élevé de HL est échangé contre l'adresse mémoire suivante la plus élevée (SP+1).

H <-> (SP+1) , L <-> (SP) ceci n'affectera pas le contenu de SP.


ASM: EX (SP),IX
OBJ: DDh, E3h
Tstates : 23.



ASM: EX (SP),IY
OBJ: FDh, E3h
Tstates : 23.


Description:
Fait la même chose que le précédent.
eg: IXH <-> (SP+1), IXL <-> (SP) IXH = IX height byte, IXL = IX low byte..



Détails sur EXX
EXCHANGE ALTERNATE REGISTERS

ASM: EXX
OBJ: D9h
Tstates : 4.


Description:
Chaque valeur de 16 bits dans les paires de registre BC, DE, HL est échangée contre la valeur de 16 bits contenue dans BC', DE', HL' respectivement.
eg:
BC <-> BC'
DE <-> DE'
HL <-> HL'




Détails sur HALT
HALTE, ATTENDS UNE INTERRUPTION OU RESET

ASM: HALT
OBJ: 76h
Tstates : 4.


Description:
L'instruction HALT interromps l'opération en cours du CPU jusqu'à ce qu'une interruption ou un reset
soit reçu. En état interrompu, le processeur exécutera des NOP pour maintenir la logique de rafraîchissement de la mémoire.




Détails sur IM
MODE D'INTERRUPTION 0 1 2


Détails sur IN
INPUT FROM PORT


Détails sur INC
INCRÉMENTE


Détails sur IND
Format d'instruction:
OPCODE                   CYCLES
-------------------------------
ED AA                      16

Description:
Le contenu du registre C est placé dans la moitié basse (A0-A7) du bus d'adresse
pour sélectioner le dispositif I/O. Le registre B peut être utilisé comme compteur
d'octets, et son contenu est placé cette fois dans la moitié haute (A8-A15) du bus d'adresse.
Ensuite, un octet du port sélectionné est placé sur le bus de données et écrit dans le processeur.
La paire de registres HL contient un pointeur pour stocker l'octet en mémoire. La paire de registre
HL est décrémentée, le compteur d'octets B est décrémenté.
Flags:
C: Non assigné.
N: Set.
P/V: Inconnu
H: Inconnu
Z: Set si B-1=0, sinon reset.
S: Inconnu.

Exemple:

Reg C=07h
Reg B=10h
Reg HL=1000h
IO port nr. 07h contiens les données 7Bh

Ensuite après l'exécution de
IND
La paire de registres HL contiendra 0FFFh, le registre B contiendra 0Fh,
et l'emplacement mémoire 1000h contiendra 7Bh.


Détails sur INDR
Format d'instruction:
OPCODE                         CYCLES
--------------------------------------------
ED BA                 16 if B=0 21 if B >< 0

Description:
Le contenu du registre C est placé dans la moitié basse (A0-A7) du bus d'adresse pour sélectionner le dispositif I/O. Le registre B est utilisé comme compteur d'octets, et son contenu est placé cette fois dans la moitié haute (A8-A15) du bus d'adresse. Ensuite, un octet provenant du port sélectionné est placé sur le bus de données et écrit dans le CPU. La paire de registres HL contient un pointeur pour stocker l'octet en mémoire. La paire de registres HL est décrémentée, le compteur d'octets B est décrémenté.
Si la décrémentation de B lui fait atteindre zéro, l'instruction ne s'exécute plus. Si B ne vaut pas zéro, l'instruction est exécutée une nouvelle fois.
Flags:
C: Non assigné.
N: Set.
P/V: Inconnu
H: Inconnu
Z: Set.
S: Inconnu

Exemple:

Reg C=07h
Reg B=03h
Reg HL=1000h
IO port nr. 07h contiens les données 51h, A9h, 03h

Ensuite après l'exécution de
INDR
la paire de registres HL contiendra 0FFDh, et le registre B contiendra zéro,
et les emplacements mémoire contiendront les données suivantes:

Emplacement:     Contenu:
0FFEh             03h
0FFFh             A9h
1000h             51h


Détails sur INI
Format d'instruction:
OPCODE         CYCLES
---------------------
ED A2            16


Description:
Le contenu du registre C est placé dans la moitié basse (A0-A7) du bus d'adresse
pour sélectionner le dispositif I/O. Le registre B peut être utilisé comme compteur
d'octets, et son contenu est placé cette fois dans la moitié haute (A8-A15) du bus d'adresse.
Ensuite un octet du port sélectionné est placé sur le bus de données et écrit dans le CPU.
La paire de registres HL contient un pointeur pour stocker l'octet en mémoire. Finalement, le registre B est décrémenté et la paire de registres HL est incrémentée.

Flags:
C: Non assigné.
N: Set.
P/V: Inconnu
H: Inconnu
Z: Set si B-1=0, sinon reset.
S: Inconnu

Exemple:

Reg C=07h
Reg B=12h
Reg HL=1000h
IO port nr. 07h contiens les données 7Bh

Ensuite, après l'exécution de
INI
L'emplacement mémoire 1000h contiendra 7Bh, la paire de registres HL contiendra
1001h, et le registre B contiendra 11h.


Détails sur INIR
Format d'instruction:
OPCODE                         CYCLES
--------------------------------------------
ED B2                 16 if B=0 21 if B >< 0

Description:
Le contenu du registre C est placé sur le moitié basse (A0-A7) du bus d'adresse pour sélectionner
le dispositif d'I/O. Le registre B est utilisé comme compteur d'octet, et son contenu est placé
cette fois dans la moitié supérieure (A8-A15) du bus d'adresse. Ensuite un octet du port sélectionné
est placé sur le bus de données et écrit dans le CPU. La paire de registres HL contient un pointeur pour stocker l'octet en mémoire. La paire de registres HL est incrémentée, le compteur d'octet B est
décrémenté. Si la décrémentation amène B à zéro, l'instruction arrête son exécution. Si B ne vaut pas
zéro, l'instruction est répétée.
Flags:
C: Non assigné.
N: Set.
P/V: Inconnu.
H: Inconnu.
Z: Set.
S: Inconnu.

Exemple:

Reg C=07h
Reg B=03h
Reg HL=1000h
IO port nr. 07h contain data 51h, A9h, 03h

Ensuite, après l'exécution de
INIR
La paire de registres HL contiendra 1003h, le registre B contiendra zéro, et les emplacements mémoire
contiendront les valeurs suivantes:

Emplacement: Contenu:
1000h         51h
1001h         A9h
1002h         03h


Détails sur JP
JUMP à une adresse.


Détails sur JR
JUMP à une adresse relative


Détails sur LD
Format d'instruction:
OPCODE  r    r'                               CYCLES
----------------------------------------------------
  01   ddd  sss         LD   r,r'   dst,src     4


Note introductrice -- Forme binaire des opcodes

    Exemple: LD r,r'

L'opcode binaire 8 bits est

        r  r'
     01dddsss

...où "ddd" est un champ de 3 bits qui spécifie la destination, et "sss" un champ de 3 bits spécifiant la source.

voilà les valeurs de ddd et sss:

Registres
--------------
A = 111
B = 000
C = 001
D = 010
E = 011

H = 100
L = 101

Opération: dst <-- src
The contest of the source operand are loaded into the destination operand. The contents of the source operand are Non assigné.

Flags:
C: Non assigné.
N: Non assigné.
P/V: Non assigné.
H: Non assigné.
Z: Non assigné.
S: Non assigné.

Example: If register E, contains the value 10h, The statement:
ASM: LD H,E
OBJ: 63h
Loads the value 10H into register H.


Détails sur LDD
Format d'instruction:
OPCODE                 CYCLES
-----------------------------
ED A8                    16

Description:
Cette instruction transfère un octet de données d'un emplacement mémoire dont
l'adresse est donnée par la paire de registres HL, vers un emplacement mémoire adressé
par la paire de registres DE. Ensuite ces deux paires de registres incluant BC (byte counter,
compteur d'octet) sont décrémentées.
Flags:
C: Non assigné.
N: reset.
P/V: Set if BC-1 si non 0, sinon reset.
H: Reset.
Z: Non assigné.
S: Non assigné.


Détails sur LDDR
Format d'instruction:
OPCODE                 CYCLES
-----------------------------
ED A8                    16

Description:
Cette instruction transfère un octet de données d'un emplacement mémoire dont
l'adresse est donnée par la paire de registres HL, vers un emplacement mémoire adressé
par la paire de registres DE. Ensuite ces deux paires de registres incluant BC (byte counter,
compteur d'octet) sont décrémentées.
Flags:
C: Non assigné.
N: reset.
P/V: Set if BC-1 si non 0, sinon reset.
H: Reset.
Z: Non assigné.
S: Non assigné.


Détails sur LDI
CHARGE ET INCRÉMENTE


Détails sur LDIR
CHARGE INCRÉMENTE ET RÉPÈTE


Détails sur NEG
NEGATE ACCUMULATOR 2'S COMPLEMENT


Détails sur NOP
NO Opération, pas d'opération, ce n'est pas l'instruction la plus compliquée :-)


Détails sur OR


Détails sur OTDR
OUTPUT, DÉC HL, DÉC B, RÉPÈTE SI B>0


Détails sur OTIR
OUTPUT, INC HL, DÉC B, RÉPÈTE SI B>0


Détails sur OUT
OUTPUT VERS LE PORT


Détails sur OUTD
OUTPUT, DÉC HL, DÉC B


Détails sur OUTI
OUTPUT, INC HL, DÉC B


Détails sur POP
ÉJECTER DE LA PILE


Détails sur PUSH
POUSSER DANS LA PILE


Détails sur RES
RESET LE BIT


Détails sur RET
REVIENS D'UNE SOUS-ROUTINE


Détails sur RETI
REVIENS D'UNE INTERRUPTION


Détails sur RETN
REVIENS D'UNE INTERRUPTION NON MASQUABLE


Détails sur RL
Format d'instruction:

ASM: RL B
OBJ: CBh, 10h
Tstates : 8.
ASM: RL C
OBJ: CBh, 11h
Tstates : 8.
ASM: RL D
OBJ: CBh, 12h
Tstates : 8.
ASM: RL E
OBJ: CBh, 13h
Tstates : 8.
ASM: RL H
OBJ: CBh, 14h
Tstates : 8.
ASM: RL L
OBJ: CBh, 15h
Tstates : 8.
ASM: RL A
OBJ: CBh, 17h
Tstates : 8.
ASM: RL (HL)
OBJ: CBh, 16h
Tstates : 15.
ASM: RL (IX+D)
OBJ: DDh, CBh, XX, 16h
Tstates : 23.
ASM: RL (IY+D)
OBJ: FDh, CBh, XX, 16h
Tstates : 23.
XX is the offset value.


Détails sur RLA
Format d'instructions:

ASM: RLA
OBJ: 17h
Tstates : 4.


Détails sur RLC
Format d'instruction:

ASM: RLC B
OBJ: CBh, 00h
Tstates : 8.
ASM: RLC C
OBJ: CBh, 01h
Tstates : 8.
ASM: RLC D
OBJ: CBh, 02h
Tstates : 8.
ASM: RLC E
OBJ: CBh, 03h
Tstates : 8.
ASM: RLC H
OBJ: CBh, 04h
Tstates : 8.
ASM: RLC L
OBJ: CBh, 05h
Tstates : 8.
ASM: RLC A
OBJ: CBh, 07h
Tstates : 8.
ASM: RLC (HL)
OBJ: CBh, 06h
Tstates : 15.
ASM: RLC (IX+D)
OBJ: DDh, CBh, XX, 06h
Tstates : 23.
ASM: RLC (IY+D)
OBJ: FDh, CBh, XX, 06h
Tstates : 23.
XX is the offset value.


Détails sur RLCA
Format d'instruction:

ASM: RLCA
OBJ: 07h
Tstates : 4.


Détails sur RLD
Format d'instruction:

ASM: RLD
OBJ: EDh, 6Fh
Tstates : 18.


Détails sur RR
Format d'instruction:

ASM: RR B
OBJ: CBh, 18h
Tstates : 8.
ASM: RR C
OBJ: CBh, 19h
Tstates : 8.
ASM: RR D
OBJ: CBh, 1Ah
Tstates : 8.
ASM: RR E
OBJ: CBh, 1Bh
Tstates : 8.
ASM: RR H
OBJ: CBh, 1Ch
Tstates : 8.
ASM: RR L
OBJ: CBh, 1Dh
Tstates : 8.
ASM: RR A
OBJ: CBh, 1Fh
Tstates : 8.
ASM: RR (HL)
OBJ: CBh, 1Eh
Tstates : 15.
ASM: RR (IX+D)
OBJ: DDh, CBh, XX, 1Eh
Tstates : 23.
ASM: RR (IY+D)
OBJ: FDh, CBh, XX, 1Eh
Tstates : 23.
XX is the offset value.


Détails sur RRA
Format d'instruction:

ASM: RRA
OBJ: 1Fh
Tstates : 4.


Détails sur RRC
Format d'instruction:

ASM: RRC B
OBJ: CBh, 08h
Tstates : 8.
ASM: RRC C
OBJ: CBh, 09h
Tstates : 8.
ASM: RRC D
OBJ: CBh, 0Ah
Tstates : 8.
ASM: RRC E
OBJ: CBh, 0Bh
Tstates : 8.
ASM: RRC H
OBJ: CBh, 0Ch
Tstates : 8.
ASM: RRC L
OBJ: CBh, 0Dh
Tstates : 8.
ASM: RRC A
OBJ: CBh, 0Fh
Tstates : 8.
ASM: RRC (HL)
OBJ: CBh, 0Eh
Tstates : 15.
ASM: RRC (IX+D)
OBJ: DDh, CBh, XX, 0Eh
Tstates : 23.
ASM: RRC (IY+D)
OBJ: FDh, CBh, XX, 0Eh
Tstates : 23.
XX is the offset value.


Détails sur RRCA
Format d'instruction:

ASM: RRCA
OBJ: 0Fh
Tstates : 4.


Détails sur RRD
Format d'instruction:

ROTATE RIGHT DIGIT
ASM: RRD
OBJ: EDh, 67h
Tstates : 18.


Détails sur RST
Format d'instruction:
OPCODE    ADRESSE DU CALL    MNEMONIC       CYCLES
----------------------------------------------------
  C7h     0000h               RST             0
  CFh     0008h               RST             8
  D7h     0010h               RST             16
  DFh     0018h               RST             24
  E7h     0020h               RST             32
  EFh     0028h               RST             40
  F7h     0030h               RST             48
  FFh     0038h               RST             56
   

Détails sur SBC
SUBTRACT WITH CARRY


Détails sur SCF
Opperation: CY = 1
Format d'instruction:
Opcode: SCF
OBJ: 37h
Description:
Le flag carry dans le registre des flags est placé à "set" (1).
Tstates: 4.
Flags:
S: Non assigné.
Z: Non assigné.
H: Reset
P/V: Non assigné.
N: Reset.
C: Set


Détails sur SET b, r
Opération: rb = 1
Format d'instruction:

CBh
Le bit b dans le registre r est placé à "set".Bit b in register r is set. Operands b and r are specified as follows:
Bit     b     Registre    r
0      000       B       000
1      001       C       001
2      010       D       010
3      011       E       011
4      100       H       100
5      101       L       101
6      110       A       111
7      111
Tstates: 8.
Flags: Aucun assigné
Example:
ASM: SET 3,D
OBJ: CBh, DAh

Détails sur SET b, (HL)
Opération: (HL)b = 1
Format d'instruction:

CBh
Le bit b à l'emplacement mémoire adressé par le contenu de la paire de registres HL est placé à "set". Operands b is specified as follows:
Bit      b
0       000
1       001
2       010
3       011
4       100
5       101
6       110
7       111
Tstates: 15.
Flags: Aucun assigné
Example:
ASM: SET 5,(HL)
OBJ: CBh, EEh

Détails sur SET b, (IX+d)
Opération: (IX+d)b = 1
Format d'instruction:

DDh

CBh
Le bit b est placé à "set", à l'emplacement mémoire adressé par la somme       Bit b is set, in the memory location addressed by the sum of the contents of register IX and the two's complement integer d. (d = adr. offset)
Operands b is specified as follows:
Bit      b
0       000
1       001
2       010
3       011
4       100
5       101
6       110
7       111
Tstates: 23.
Flags: Aucun assigné
Example:
ASM: SET 0,(IX+3h)
OBJ: DDh, CBh, 03h, C6h
Si le contenu du registre d'index IX vaut 2000h, alors le bit 0 à l'emplacement mémoire 2003h sera à 1 (set).
Le bit 0 est le bit le moins significatif

Détails sur SET b, (IY+d)
Opération: (IY+d)b = 1
Format d'instruction:

FDh

CBh
Le bit b est placé à "set",     in the memory location addressed by the sum of the contents of register IY and the two's complement integer d. (d = adr. offset)
Operands b is specified as follows:
Bit      b
0       000
1       001
2       010
3       011
4       100
5       101
6       110
7       111
Tstates: 23.
Flags: Aucun assigné
Example:
ASM: SET 0,(IY+47h)
OBJ: DDh, CBh, 47h, C6h
Si le contenu du registre d'index IX vaut 200h, alors le bit 0 à l'emplacement mémoire 2047h sera à 1 (set).
Le bit 0 est le bit le moins significatif.


Détails sur SLA
Format d'instruction:

ASM: SLA B
OBJ: CBh, 20h
Tstates : 8.
ASM: SLA C
OBJ: CBh, 21h
Tstates : 8.
ASM: SLA D
OBJ: CBh, 22h
Tstates : 8.
ASM: SLA E
OBJ: CBh, 23h
Tstates : 8.
ASM: SLA H
OBJ: CBh, 24h
Tstates : 8.
ASM: SLA L
OBJ: CBh, 25h
Tstates : 8.
ASM: SLA A
OBJ: CBh, 27h
Tstates : 8.
ASM: SLA (HL)
OBJ: CBh, 26h
Tstates : 15.
ASM: SLA (IX+D)
OBJ: DDh, CBh, XX, 26h
Tstates : 23.
ASM: SLA (IY+D)
OBJ: FDh, CBh, XX, 26h
Tstates : 23.
XX is the offset value.


Détails sur SRA
Format d'instruction:

ASM: SRA B
OBJ: CBh, 28h
Tstates : 8.
ASM: SRA C
OBJ: CBh, 29h
Tstates : 8.
ASM: SRA D
OBJ: CBh, 2Ah
Tstates : 8.
ASM: SRA E
OBJ: CBh, 2Bh
Tstates : 8.
ASM: SRA H
OBJ: CBh, 2Ch
Tstates : 8.
ASM: SRA L
OBJ: CBh, 2Dh
Tstates : 8.
ASM: SRA A
OBJ: CBh, 2Fh
Tstates : 8.
ASM: SRA (HL)
OBJ: CBh, 2Eh
Tstates : 15.
ASM: SRA (IX+D)
OBJ: DDh, CBh, XX, 2Eh
Tstates : 23.
ASM: SRA (IY+D)
OBJ: FDh, CBh, XX, 2Eh
Tstates : 23.
XX is the offset value.


Détails sur SRL
Format d'instruction:

ASM: SRL B
OBJ: CBh, 38h
Tstates : 8.
ASM: SRL C
OBJ: CBh, 39h
Tstates : 8.
ASM: SRL D
OBJ: CBh, 3Ah
Tstates : 8.
ASM: SRL E
OBJ: CBh, 3Bh
Tstates : 8.
ASM: SRL H
OBJ: CBh, 3Ch
Tstates : 8.
ASM: SRL L
OBJ: CBh, 3Dh
Tstates : 8.
ASM: SRL A
OBJ: CBh, 3Fh
Tstates : 8.
ASM: SRL (HL)
OBJ: CBh, 3Eh
Tstates : 15.
ASM: SRL (IX+D)
OBJ: DDh, CBh, XX, 3Eh
Tstates : 23.
ASM: SRL (IY+D)
OBJ: FDh, CBh, XX, 3Eh
Tstates : 23.
XX is the offset value.


Détails sur SUB
Opération: A = A - s
The s operand is subtracted from the contents of the accumulator, and the result is stored in the Accumulator.
ASM: SUB B
OBJ: 90h
Tstates : 4.
ASM: SUB C
OBJ: 91h
Tstates : 4.
ASM: SUB D
OBJ: 92h
Tstates : 4.
ASM: SUB E
OBJ: 93h
Tstates : 4.
ASM: SUB H
OBJ: 94h
Tstates : 4.
ASM: SUB L
OBJ: 95h
Tstates : 4.
ASM: SUB A
OBJ: 97h
Tstates : 4.
ASM: SUB n
OBJ: D6h, n
Tstates : 7.
ASM: SUB (HL)
OBJ: 96h
Tstates : 7.
ASM: SUB (IX+d)
OBJ: DDh, 96h, d
Tstates : 19.
ASM: SUB (IY+d)
OBJ: FDh, 96h, d
Tstates : 19.
Flags:
S: Set si le résultat est négatif, sinon reset.
Z: Set si le résultat vaut zéro, sinon reset.
H: Set if borrow from Bit4, reset otherwise.
P/V: Set si overflow, sinon reset.
N: Reset.
C: Set if borrow, reset otherwise.
Exemple: Si l'accumulateur contiens 29h, et le registre D contiens 11h, après l'exécution de:
ASM: SUB D
OBJ: 92h
L'accumulateur contiendra 18h.


Détails sur XOR
Opération: A = A xor s
Une opération logique exclusive-OR est effectuée antre l'octet spécifié par   A logical exclusive-OR opperation is performed between the byte specified by the s opperand and the byte contained in the Accumulator, the result is stored in the Accumulator.
ASM: XOR B
OBJ: A8h
Tstates : 4.
ASM: XOR C
OBJ: A9h
Tstates : 4.
ASM: XOR D
OBJ: AAh
Tstates : 4.
ASM: XOR E
OBJ: ABh
Tstates : 4.
ASM: XOR H
OBJ: ACh
Tstates : 4.
ASM: XOR L
OBJ: ADh
Tstates : 4.
ASM: XOR A
OBJ: AFh
Tstates : 4.
ASM: XOR n
OBJ: EEh, n
Tstates : 7.
ASM: XOR (HL)
OBJ: AEh
Tstates : 7.
ASM: XOR (IX+d)
OBJ: DDh, AEh, d

Tstates : 19.
ASM: XOR (IY+d)
OBJ: FDh, AEh, d
Tstates : 19.
Flags:
S: Set si résultat négatif, sinon reset.
Z: Set si résultat vaut zéro, sinon reset.
H: Reset.
P/V: Set si la parité est paire, sinon reset.
N: Reset.
C: Reset.
Exemple: Si l'accumulateur contiens 96h (10010110), et le registre D contiens 5Dh (01011101) , après l'exécution de:
ASM: XOR D
OBJ: AAh
L'accumulateur contiendra CBh (11001011).

    Cliquez pour revenir au menu du site...