Transfer
Instructions Internal RAM
Mnemonic |
Regi-ster |
Incoding Binary |
Inc. HEX |
Affec ted Flags |
Bytes |
Cycles |
Function |
Description |
mov A,Rr |
r=0-7 |
11101rrr |
E8+r |
P |
1 |
1 |
Move register
Rr contents to accumulator |
Charge le contenu
du registre Rr dans l'accumulateur |
mov Rr,A |
r=0-7 |
11111rrr |
F8+r |
- |
1 |
1 |
Move
accumulator contents to register Rr |
Charge le contenu
de l'accumulateur dans le registre Rr |
mov A,@Ri |
i=0-1 |
1110011i |
E6+i |
P |
1 |
1 |
Move contents
of data memory addressed by Ri to accumulator |
Charge dans
l'accumulateur le contenu de l'emplacement de la mémoire de données dont
l'adresse est dans Ri |
mov @Ri,A |
i=0-1 |
1111011i |
F6+i |
- |
1 |
1 |
Move
accumulator to data memory addressed by Ri |
Charge le contenu
de l'accumulateur à l'adresse de la mémoire de données contenue dans Ri |
mov A,dadr* |
- |
11100101 |
E5 |
P |
2 |
1 |
Move contents
of direct address to accumulator (mov A,ACC is not a valid instruction |
Charge dans
l'accumulateur le contenu de dadr (mov A,ACC n'est pas une instruction valide) |
mov dadr,A |
- |
11110101 |
F5 |
- |
2 |
1 |
Move
accumulator contents to direct address |
Charge dans dadr le
contenu de l'accumulateur |
mov A,#const8 |
- |
01110100 |
74 |
P |
2 |
1 |
Move
immediate data to accumulator |
Charge une
constante de 8 bits dans l'accumulateur |
mov Rr,#const8 |
r=0-7 |
01111rrr |
78+r |
- |
2 |
1 |
Move
immediate data to register |
Charge une
constante de 8 bits dans dans le registre Rr |
mov @Ri,#const8 |
i=0-1 |
0111011i |
76+i |
- |
2 |
1 |
Move
immediate data to data memory addressed by Ri |
Charge une
constante de 8 bits à l'emplacement de mémoire interne dont l'adresse est
contenue dans Ri |
mov dadr,#const8 |
- |
01110101 |
75 |
- |
3 |
2 |
Move
immediate data to data memory |
Charge une constante
de 8 bits à dadr |
mov Rr,dadr |
r=0-7 |
10101rrr |
A8+r |
- |
2 |
2 |
Load register
Rr with contents of direct address |
Charge dans le
registre Rr le contenu de dadr |
mov dadr,Rr |
r=0-7 |
10001rrr |
88+r |
- |
2 |
2 |
Load direct
address with contents of register |
Charge à dadr le
contenu du registre Rr |
mov dadr,@Ri |
i=1-0 |
1000011i |
86+i |
- |
2 |
2 |
Move contents
of data memory addressed by Ri to direct address |
Charge à dadr le
contenu de l'emplacement de mémoire dont l'adresse est rangée dans Ri |
mov @Ri,dadr |
i=0-1 |
1010011i |
A6+i |
- |
2 |
2 |
Move data
memory to contents of data memory addressed by Ri |
Charge le contenu
de dadr à l'emplacement de mémoire dont Ri contient l'adresse |
mov dadr1,dadr2 |
- |
10000101 |
85 |
- |
3 |
2 |
Move data
memory to data memory |
Charge à dadr1 le
contenu de dadr2 |
mov DPTR,#const16 |
- |
10010000 |
90 |
- |
3 |
2 |
Move immediate
data to data pointer |
Charge une
constante de 16 bits dans le pointeur de données DPTR |
Transfer
Instructions External RAM
movx A,@Ri |
i=0-1 |
1110001i |
E2+r |
P |
1 |
2 |
Move contents
of external data memory addressed by Ri to accumulator |
Charge dans l'accumulateur le contenu de l'emplacement de
mémoire externe, dont Ri contient l'adresse |
movx @Ri,A |
i=0-1 |
1111001i |
F2+i |
- |
1 |
2 |
Move
accumulator contents to external data memory, addressed by Ri |
Charge le contenu de l'accumulateur à l'emplacement de
mémoire externe, dont Ri contient l'adresse |
movx A,@DPTR |
- |
11100000 |
E0 |
P |
1 |
2 |
Move contents
of external data memory addressed by DPTR to accumulator |
Charge dans l'accumulateur le contenu de l'emplacement de
mémoire externe, dont DPTR contient l'adresse |
movx @DPTR,A |
- |
11110000 |
F0 |
- |
1 |
2 |
Move
accumulator contents to external data memory, addressed by DPTR |
Charge le contenu de l'accumulateur à l'emplacement de
mémoire externe dont DPTR contient l'adresse |
Transfer
Instructions Internal RAM
xch A,Rr |
r=0-7 |
11001rrr |
C8+r |
P |
1 |
1 |
Exchange
accumulator and register contents |
Echange les contenus de l'accumulateur et du registre Rr |
xch A,dadr |
- |
11000101 |
C5 |
P |
2 |
1 |
Exchange
accumulator and data memory contents |
Echange les contenus de l'accumulateur et de dadr |
xch A,@Ri |
i=0-1 |
1100011i |
C6+i |
P |
1 |
1 |
Exchange
accumulator and data memory addressed by Ri |
Echange les contenus de l'accumulateur et de l'emplacement
de mémoire interne dont Ri contient l'adresse |
xchd A,@Ri |
i=0-1 |
1101011i |
D6+i |
P |
1 |
1 |
Exchange low order
nibble of accumulator and data memory |
Echange les contenus des quartets de poids faible de
l'accumulateur et de l'emplacement de mémoire interne dont Ri contient
l'adresse |
swap A |
- |
11000100 |
C4 |
- |
1 |
1 |
Exchange nibbles of accumulators |
Echange les quartets de l'accumulateur |
push dadr |
- |
11000000 |
C0 |
- |
2 |
2 |
Increment
stack pointer. Push data
memory onto stack |
Incrémente (augmente d'une unité) le pointeur de pile Dépose le contenu de dadr sur la pile |
pop dadr |
- |
11010000 |
D0 |
- |
2 |
2 |
Pop data
memory form stack Decrement
stack pointer |
Transfère le contenu de l'emplacement de mémoire sur
lequel pointe le pointeur de pile vers dadr, le contenu du pointeur de pile
diminue de 1 |
Transfer
Instructions ROM
movc A,@A+DPTR |
- |
10010011 |
93 |
P |
1 |
2 |
Move program memory addressed
by accumulator plus DPTR to accumulator |
Charge dans l'accumulateur le contenu de
l'emplacement de mémoire dont l'adresse est égale à la somme de DPTR et de
l'accumulateur |
movc A,@A+PC |
- |
10000011 |
83 |
P |
1 |
2 |
Move programm
memory addressed by accumulator plus program counter to accumulator |
Charge dans l'accumulateur le contenu de l'emplacement de mémoire
dont l'adresse est égale à la somme du compteur de programme et de
l'accumulateur |
Boolean
Instructions AND
Mnemonic |
Regi-ster |
Incoding Binary |
Inc. HEX |
Affec ted Flags |
Bytes |
Cycl es |
Function |
Description |
anl A,Rr |
r=0-7 |
01011rrr |
58+r |
P |
1 |
1 |
Logical AND accumulator with
register contents to accumulator |
Le contenu de l'accumulateur est écrasé par le
résultat de l'opération ET entre le contenu de l'accumulateur et le contenu
du registre Rr |
anl A,@Ri |
i=0-1 |
0101011i |
56+1 |
P |
1 |
1 |
Logical AND accumulator with
data memory contents adressed by Ri to accumulator |
Le contenu de l'accumulateur est écrasé par le
résultat de l'opération ET entre le contenu de l'accumulateur et le contenu de
l'emplacement de mémoire interne, dont Ri contient l'adresse |
anl A,dadr |
- |
01010101 |
55 |
P |
2 |
1 |
Logical AND accumulator with
contents of direct adress to accumulator |
Le contenu de l'accumulateur est écrasé par le résultat
de l'opération ET entre le contenu de l'accumulateur et le contenu de dadr |
anl A,#const8 |
- |
01010100 |
54 |
P |
2 |
1 |
Logical AND accumulator with
immediate data to accumulator |
Le contenu de l'accumulateur est écrasé par le résultat
de l'opération ET entre le contenu de l'accumulateur et la constante de 8
bits |
anl dadr,A |
- |
01010010 |
52 |
- |
2 |
1 |
Logical AND accumulator with
contents of direct adress ti direct adress |
Le contenu de dadr est écrasé par le résultat de
l'opération ET entre le contenu de l'accumulateur et celui de dadr |
anl dadr,#const8 |
- |
01010011 |
53 |
- |
3 |
2 |
Logical AND contents of
direct address and immediate data to direct address |
Le contenu de dadr est écrasé par le résultat de
l'opération ET entre la constante de 8 bits et le contenu de dadr |
Boolean
Instructions OR
orl A,Rr |
r=0-7 |
01001rrr |
48+r |
P |
1 |
1 |
Logical OR accumulator with register contents to accumulator |
Le contenu de l'accumulateur
est écrasé par le résultat de l'opération OU entre le contenu de
l'accumulateur et le contenu du registre Rr |
orl A,@Ri |
i=0-1 |
0100011i |
46+1 |
P |
1 |
1 |
Logical OR accumulator with data memory contents adressed by Ri to
accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'opération OU entre le contenu
de l'accumulateur et le contenu de l'emplacement de mémoire interne, dont Ri
contient l'adresse |
orl A,dadr |
- |
01000101 |
45 |
P |
2 |
1 |
Logical OR accumulator with contents of direct adress to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'opération OU entre le contenu
de l'accumulateur et le contenu de dadr |
orl A,#const8 |
- |
01000100 |
44 |
P |
2 |
1 |
Logical OR accumulator with immediate data to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'opération OU entre le contenu
de l'accumulateur et la constante de 8 bits |
orl dadr,A |
- |
01000010 |
42 |
- |
2 |
1 |
Logical OR accumulator with contents of direct adress ti direct adress |
Le contenu de dadr est
écrasé par le résultat de l'opération OU entre le contenu de l'accumulateur
et le contenu de dadr |
orl dadr,#const8 |
- |
01000011 |
43 |
- |
3 |
2 |
Logical OR contents of direct address and immediate data to direct
address |
Le contenu de dadr est
écrasé par le résultat de l'opération OU entre la constante de 8 bits et le
contenu de dadr |
Boolean
Instructions EXCLUSIVE OR
xrl A,Rr |
r=0-7 |
01101rrr |
68+r |
P |
1 |
1 |
Logical XOR accumulator with register contents to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'opération OU exclusif entre le
contenu de l'accumulateur et le contenu du registre Rr |
xrl A,@Ri |
i=0-1 |
0110011i |
66+1 |
P |
1 |
1 |
Logical XOR accumulator with data memory contents adressed by Ri to
accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'opération OU exclusif entre le
contenu de l'accumulateur et le contenu de l'emplacement de mémoire interne
dont Ri contient l'adresse |
xrl A,dadr |
- |
01100101 |
65 |
P |
2 |
1 |
Logical XOR accumulator with contents of direct adress to accumulator |
Le contenu de l'accumulateur
est écrasé par le résultat de l'opération OU exclusif entre le contenu de
l'accumulateur et le contenu de dadr |
xrl A,#const8 |
- |
01100100 |
64 |
P |
2 |
1 |
Logical XOR accumulator with immediate data to accumulator |
Le contenu de l'accumulateur
est écrasé par le résultat de l'opération OU exclusif entre le contenu de
l'accumulateur et la constante de 8 bits |
xrl dadr,A |
- |
01100010 |
62 |
- |
2 |
1 |
Logical XOR accumulator with contents of direct adress ti direct
adress |
Le contenu de dadr est
écrasé par le résultat de l'opération OU exclusif entre le contenu de
l'accumulateur et le contenu de dadr |
xrl dadr,#const8 |
- |
01100011 |
63 |
- |
3 |
2 |
Logical XOR contents of direct address and immediate data to direct
address |
Le contenu de dadr est
écrasé par le résultat de l'opération OU exclusif entre la constante de 8
bits et le contenu de dadr |
Boolean Instructions COMPLEMENT / CLEAR ACC.
cpl A |
- |
11110100 |
F4 |
P |
1 |
1 |
Complement
accumulator |
Complémente le contenu
de l'accumulateur (complément à 1) |
clr A |
- |
11100100 |
E4 |
P |
1 |
1 |
Clear accumulator |
Efface l'accumulateur |
Instructions
for Bit Manipulation TRANSFER / AND / OR / CLEAR / COMPLEMENT / SET
Mnemonic |
Regi- ster |
Incoding Binary |
Inc. HEX |
Affec ted Flags |
Byt- es |
Cyc les |
Function |
Description |
mov C,badr |
- |
10100010 |
A2 |
CY |
2 |
1 |
Move contents of bit adress to carry |
Charge le contenu de
badr dans la retenue (carry) |
mov badr,C |
- |
10010010 |
92 |
- |
2 |
2 |
Move contents of carry to bit adress |
Charge le contenu de
la retenue dans badr |
anl C,badr |
- |
10000010 |
82 |
CY |
2 |
2 |
Logical AND carry with contents of bit adress |
La retenue est écrasée
par le résultat de l'opération ET entre la retenue et le contenu de badr |
anl C,/badr |
- |
10110000 |
B0 |
CY |
2 |
2 |
Logical AND carry with complement of contents of bit adress |
La retenue est écrasée
par le résultat de l'opération ET entre la retenue et le contenu inversé de
badr |
orl C,badr |
- |
01110010 |
72 |
CY |
2 |
2 |
Logical OR carry with contents of bit adress |
La retenue est écrasée
par le résultat de l'opération OU entre la retenue et le contenu de badr |
orl c,/badr |
- |
10100000 |
A0 |
CY |
2 |
2 |
Logical OR carry with complement of contents of bit address |
La retenue est écrasée
par le résultat de l'opération OU entre la retenue et le contenu inversé de
badr |
clr C |
- |
11000011 |
C3 |
CY |
1 |
1 |
Clear carry |
Efface la retenue |
clr badr |
- |
11000010 |
C2 |
- |
2 |
1 |
Clear contents of bit adress |
Efface le contenu de badr |
cpl C |
- |
10110011 |
B3 |
CY |
1 |
1 |
Complement carry |
Inverse la retenue |
cpl badr |
- |
10110010 |
B2 |
- |
2 |
1 |
Complement contents of bit address |
Inverse le contenu de
badr |
setb C |
- |
11010011 |
D3 |
CY |
1 |
1 |
Set carry |
Positionne la retenue |
setb badr |
- |
11010010 |
D2 |
- |
2 |
1 |
Set contents of bit address |
Positionne le contenu
de badr |
Arithmetic Instructions ADD
add A,Rr |
r=0-7 |
00101rrr |
28+r |
CY,AC, OV,P |
1 |
1 |
Add register contents to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur et le contenu du registre Rr |
add A,@Ri |
i=0-1 |
0010011i |
26+1 |
CY,AC, OV,P |
1 |
1 |
Add contents of data memory adressed by Ri to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur et le contenu de l'emplacement de mémoire interne, dont Ri
contient l'adresse |
add A,dadr |
- |
00100101 |
25 |
CY,AC, OV,P |
2 |
1 |
Add contents of direct adress to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur et le contenu de dadr |
add A,#const8 |
- |
00100100 |
24 |
CY,AC, OV,P |
2 |
1 |
Add immediate data to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur et la constante de 8 bits |
addc A,Rr |
r=0-7 |
00111rrr |
38+r |
CY,AC, OV,P |
1 |
1 |
Add carry and register contents to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur, le contenu du registre Rr et le contenu de l'indicateur de
retenue |
addc A,@Ri |
i=0-1 |
0011011i |
36+1 |
CY,AC, OV,P |
1 |
1 |
Add carry and contents of data memory adressed by Ri to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur, le contenu de l'emplacement de mémoire interne, dont Ri
contient l'adresse et le contenu de l'indicateur de retenue |
addc A,dadr |
- |
00110101 |
35 |
CY,AC, OV,P |
2 |
1 |
Add carry and contents of direct adress to accumulator |
Le contenu de l'accumulateur
est écrasé par le résultat de l'addition entre le contenu de l'accumulateur
le contenu de dadr et le contenu de l'indicateur de retenue |
addc A,#const8 |
- |
00110100 |
34 |
CY,AC, OV,P |
2 |
1 |
Add carry and immediate data to accumulator |
Le contenu de
l'accumulateur est écrasé par le résultat de l'addition entre le contenu de
l'accumulateur de la constante de 8 bits et le contenu de l'indicateur de
retenue |
inc A |
- |
00000100 |
04 |
P |
1 |
1 |
Increment accumulator |
Ajoute 1 au contenu de
l'accumulateur |
inc Rr |
r=0-7 |
00001rrr |
08+r |
- |
1 |
1 |
Increment register |
Ajoute 1 au contenu du
registre Rr |
inc @Ri |
i=0-1 |
0000011i |
06+1 |
- |
1 |
1 |
Increment data memory contents adressed by Ri |
Ajoute 1 au contenu de
l'emplacement de mémoire interne dont Ri contient l'adresse |
inc dadr |
- |
00000101 |
05 |
- |
2 |
1 |
Increment contents of direct address |
Ajoute 1 au contenu au
contenu de dadr |
inc DPTR |
- |
10100011 |
A3 |
- |
1 |
2 |
Increment data pointer |
Ajoute 1 au contenu du
registre DPTR |
Arithmetic Instructions DECIMAL
ADJUSTING
da A |
- |
11010100 |
D4 |
CY,P |
1 |
1 |
Decimal adjust accumulator for addition |
La prise en compte de la retenue et de la retenue auxiliaire corrige
le résultat de l'addition antérieure de deux nombres DCB |
Arithmetic
Instructions SUBTRACT
subb A,Rr |
r=0-7 |
10011rrr |
98+r |
CY,AC, OV,P |
1 |
1 |
Subtract sum of register and carry from accumulator |
La somme des contenus
de la retenue et du registre Rr est soustraite de l'accumulateur. Le résultat
écrase le contenu de l'accumulateur |
subb A,@Ri |
i=0-1 |
1001011i |
96+i |
CY,AC, OV,P |
1 |
1 |
Subtract sum of contents of data memory adressed by Ri to accumulator |
La somme des contenus
de la retenue et de l'emplacement de mémoire interne, dont Ri contient
l'adresse, est soustraite de l'accumulateur. Le résultat écrase le contenu de
l'accumulateur |
subb A,dadr |
- |
10010101 |
95 |
CY,AC, OV,P |
2 |
1 |
Subtract sum of contents of direct adress and carry from accumulator |
La somme des contenus
de la retenue et de l'adresse dadr est soustraite de l'accumulateur. Le
résultat écrase le contenu de l'accumulateur |
subb A,#const8 |
- |
10010100 |
94 |
CY,AC, OV,P |
2 |
1 |
Subtract sum of immediate data and carry form accumulator |
La somme des contenus
de la retenue et de la constante de 8 bits est soustraite de l'accumulateur. Le
résultat écrase le contenu de l'accumulateur |
dec A |
- |
00010100 |
14 |
P |
1 |
1 |
Decrement accumulator |
Le contenu de l'accumulateur
est décrémenté (diminué de 1) |
dec Rr |
r=0-7 |
00011rrr |
18+r |
- |
1 |
1 |
Decrement register |
Décrément du contenu
du registre Rr |
dec @Ri |
i=0-1 |
0001011i |
16+1 |
- |
1 |
1 |
Decrement data memory contents adressed by Ri |
Décrément du contenu de
l'emplacement de mémoire interne dont Ri contient l'adresse |
dec dadr |
- |
00010101 |
15 |
- |
2 |
1 |
Decrement contents of direct address |
Décrément du contenu
de dadr |
Arithmetic
Instructions MULTIPLY / DIVIDE
mul AB |
- |
10100100 |
A4 |
CY,OV, P |
1 |
4 |
Multiply accumulator with B-register |
Multiplication des
contenus de l'accumulateur et du registre B. L'octet de poids faible du
produit écrase le contenu de l'accumulateur, l'octet de poids fort, le
contenu du registre B. La retenue est effacée, le bit OV (dépassement de
capacité) est positionné, si le résultat est 0 dans le registre B |
div AB |
- |
100100100 |
A4 |
CY,OV, P |
1 |
4 |
Divide accumulator by B-register |
Le contenu de l'accumulateur
est divisé par le contenu du registre B. Le quotient écrase le contenu de l'accumulateur,
le reste celui du registre B. La retenue est effacée. Une division par 0 positionne
le bit OV (dépassement de capacité) |
Shift Instructions
rl A |
- |
00100011 |
23 |
- |
1 |
1 |
Rotate left without
carry |
Décale le contenu de
l'accumulateur d'un emplacement vers la gauche. Le bit 27 est décalé à l'emplacement
de bit 20 |
rlc A |
- |
00110011 |
33 |
CY,P |
1 |
1 |
Rotate left through
carry |
Décale le contenu de
l'accumulateur d'un emplacement vers la gauche par l'intermédiaire de la
retenue. La
retenue est décalée au bit 20 |
rr A |
- |
00000011 |
03 |
- |
1 |
1 |
Rotate righ without
carry |
Décale le contenu de
l'accumulateur d'un emplacement vers la droite. Le bit 20 est décalé à
l'emplacement du bit 27 |
rrc A |
- |
00010011 |
13 |
CY,P |
1 |
1 |
Rotate left through
carry |
Décale le contenu de l'accumulateur
d'un emplacement vers la droite. La retenue est décalée à l'emplacement du
bit 27 |
Branch
Instructions Unconditional Jumps
ljmp adr16 |
- |
00000010 |
02 |
- |
3 |
2 |
Jump to absolute
address |
Le programme se
poursuit à l'adresse de 16 bits adr |
sjmp rel |
- |
10000010 |
80 |
- |
2 |
2 |
Jump to relative
address |
Le programme se
poursuit à l'adresse relative au compteur de programme |
ajmp adr11 |
- |
See Table Branch
ins |
|
- |
2 |
2 |
Jump to absolute
address |
Le programme se
poursuit à l'adresse de 11 bits adr 11 dans les 2 Ko sur lesquels pointe le
compteur de programme |
jmp adr |
- |
- |
- |
- |
- |
- |
Generic Jump |
ASM 51 produit une
instruction sjmp, ajmp, ljmp en fonction de l'éloignement du saut de destination.
(LJMP si
l'adresse est en avant). |
jmp @A+DPTR |
- |
01110011 |
73 |
- |
1 |
2 |
Jump to sum of accumulator and data pointer |
Le programme se
poursuit à une adresse égale à la somme entre le contenu de l'accumulateur et
DPTR |
Branch
Instructions Conditional Jumps
jc rel |
- |
01000000 |
40 |
- |
2 |
2 |
Jump if carry is set |
Saut relatif au
compteur de programme si carry = 1 |
jnc rel |
- |
01010000 |
50 |
- |
2 |
2 |
Jump if carry is not set |
Saut relatif au
compteur de programme si carry = 0 |
jb badr,rel |
- |
00100000 |
20 |
- |
3 |
2 |
Jump if bit is set |
Saut relatif au
compteur de programme si le contenu de badr = 1 |
jnb badr,rel |
- |
00110000 |
30 |
- |
3 |
2 |
Jump if bit is not set |
Saut relatif au
compteur de programme si le contenu de badr = 0 |
jnb rel |
- |
01010000 |
50 |
- |
3 |
2 |
Jump if bit is not set |
Saut relatif au
compteur de programme si le contenu de badr = 0 |
jbc badr,rel |
- |
00010000 |
10 |
- |
3 |
2 |
Jump and clear if bit is set |
Saut relatif au
compteur de programme si le contenu de badr = 1 et efface le contenu de badr |
jz rel |
- |
01100000 |
60 |
- |
2 |
2 |
Jump relative if accumulator is set |
Saut relatif au
compteur de programme si le contenu de l'accumulateur = 0 |
jnz rel |
- |
01110000 |
70 |
- |
2 |
2 |
Jump relative if accumulator is not zero |
Saut relatif au
compteur de programme si le contenu de l'accumulateur 0 |
cjne A,dadr,rel |
- |
10110101 |
B5 |
CY |
3 |
2 |
Compare memory to accumulator. Jump if not equal |
Saut relatif au
compteur de programme si les contenus de l'accumulateur et de dadr sont
différents. La retenue est positionnée si dadr est plus grand, elle est
remise à 0 dans le cas contraire |
cjne A,#const8,rel |
- |
10110100 |
B4 |
CY |
3 |
2 |
Compare immediate data to accumu- lator. Jump if not equal |
Saut relatif au
compteur de programme si les contenus de l'accumulateur et de const8 sont
différents. La retenue est positionnée si const8 est plus grand, elle est
remise à 0 dans le cas contraire |
cjne Rr,#const8,rel |
0-7 |
10111rrr |
B8+r |
CY |
3 |
2 |
Compare immediate data to register. Jump if not equal |
Saut relatif au
compteur de programme si les contenus de Rr et de const8 sont différents. La
retenue est positionnée si konst8 est plus grand, elle est remise à 0 dans le
cas contraire |
cjne @Ri,#const8,rel |
i=0-1 |
1011011i |
B6+i |
CY |
3 |
2 |
Compare constants of ondirect address to immediate data, Jump if not equal |
Saut relatif au
compteur de programme si le contenu de l'emplacement de mémoire dont Ri
contient l'adresse, est différent de const8. La retenue est positionnée si const8
est plus grand, elle est remise à 0 dans le cas contraire |
djnz Rr,rel |
r=0-7 |
11011rrr |
D8+r |
- |
2 |
2 |
Decrement register and jump if not zero |
Le contenu du registre
Rr est diminué de 1. S'il est toujours 0, saut relatif au compteur de programme |
djnz dadr,rel |
- |
11011101 |
D5 |
- |
3 |
2 |
Decrement memory and jump if not zero |
Le contenu de dadr est
diminué de 1. S'il est toujours 0, saut relatif au compteur de programme |
Subroutine
Instructions
lcall adr16 |
- |
00010010 |
12 |
- |
3 |
2 |
Long call to adr 16 |
Le pointeur de pile
est incrémenté. Le contenu du compteur de programme est déposé sur la pile. Le programme
se poursuit à l'adresse adr 16 |
acall adr11 |
- |
See Table Branch instruction |
|
- |
2 |
2 |
Absolute call within current 2K |
Le pointeur de pile
est incrémenté. Le contenu du compteur de programme est déposé sur la pile. Le
programme se poursuit à l'adresse de 11 bits adr 11 dans les 2 Ko sur
lesquels pointe le compteur de programme |
call adr11 |
- |
- |
- |
- |
2 |
2 |
Generiv Call |
ASM51 produit une
instruction acall, lcall en fonction de l'éloignement de la cible du saut. (lcall si la cible est
en avant). |
ret |
- |
00101101 |
22 |
- |
1 |
2 |
Return from
subroutine |
Les deux octets de
poids fort de la pile sont chargés dans le compteur de programme. Le pointeur
de pile est décrémenté |
reti |
- |
00110010 |
32 |
- |
1 |
2 |
Return from
interrupt subroutine |
Les deux octets de
poids fort de la pile sont chargés dans le compteur de programme. Le pointeur
de pile est décrémenté. Le niveau d'interruption courant est abandonné |
nop |
- |
00000000 |
00 |
- |
1 |
1 |
No operation |
Instruction sans effet |