SUBB A,Rn
SUBB A,Direto
SUBB A,@Ri
SUBB A,#Dado
INC A
INC Rn
INC Direto
INC @Ri
DEC A
DEC Rn
DEC Direto
DEC @Ri
INC DPTR
MUL AB
DIV AB
DA A
INSTRUES PARA VARIVEIS BOOLEANAS
CLR C
CLR Bit
SETB C
SETB Bit
CPL C
CPL Bit
ANL C,Bit
ANL C,/Bit
ORL C,Bit
ORL C,/Bit
MOV C,Bit
MOV Bit,C
JC rel
JNC rel
JB Bit, rel
JNB Bit,rel
JBC Bit,rel
INSTRUES DE DESVIO
ACALL End 11
LCALL End 16
RET
RETI
AJMP End 11
LJMP End 16
SJMP rel
JMP @A,DPTR
JZ rel
JNZ rel
CJNE A, Direto, rel
CJNE A,#Dado,rel
CJNE Rn,#Dado,rel
CJNE @Ri,#Dado,rel
DJNZ Rn,rel
DJNZ Direto,rel
NOP
INSTRUES LGICAS
CLR A
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
ANL A,Rn
ANL A,Direto
ANL A,@Ri
ANL A,#Dado
ANL Direto,A
ANL Direto,#Dado
ORL A,Rn
ORL A,Direto
ORL A,@ Ri
ORL A,#Dado
ORL Direto,A
ORL Direto,#Dado
XRL A,Rn
XRL A,Direto
XRL A,@Ri
XRL A,#Dado
XRL Direto,A
XRL Direto,#Dado
OBSERVAES:
RANSFERNCIA DE DADOS
Move o Registro n para o Acumulador.
Move o contedo da posio de memria para o Acumulador.
Move o contedo da RAM interna endereada po Ri para o Acumulador.
Move o Dado para o Acumulador.
Move o contedo do Acumulador para o Registro n.
Move o contedo da memria para o Registro n.
Move o Dado para o Registro n.
Move o contedo do Acumulador para a posio de memria.
Move o contedo do Registro n para a posio de memria.
Move o contedo da posio de memria 2 para a posio de memria 1.
Move o contedo da posio de memria endereada por Ri para a posio de memria.
Move o Dado para a posio de memria.
Move o contedo do Acumulador para a posio de memria endereada por Ri.
Move o contedo da posio de memria para a posio de memria endereada por Ri.
Move o Dado para a posio de memria endereada por Ri.
Move o Dado de 16 bits para o Registro DPTR.
Move o contedo da posio de memria da ROM endereada por A + DPTR. O endereo ser de 16 bits.
Move o contedo da posio de memria da ROM endereada por A + PC. O endereo ser de 16 bits.
Move o contedo da posio de memria da RAM externa endereada por Ri para o Acumulador.
Move o contedo da posio de memria da RAM externa endereada por DPTR para o Acumulador.
Move o contedo do Acumulador para a posio de memria da RAM externa endereada por Ri.
Move o contedo do Acumulador para a posio de memria da RAM externa endereada por DPTR.
Coloca na pilha o contedo da posio de memria. Incrementa o SP (Stack Pointer) e escreve na pilha.
Retira da pilha o Dado e coloca na posio de memria.
Troca entre si os contedo do Acumulador e do Registro n.
Troca entre si os contedo do Acumulador e do Registro n.
Troca entre si os contedo do Acumulador e da posio de memria endereada por Ri.
Troca os nibbles menos significativos do contedo do Acumulador e da posio de memria endereada
por Ri.
MTICAS
Soma o contedo do Registro n ao Acumulador.
Soma o contedo da posio de memria ao Acumulador.
Soma o contedo da posio de memria endereada por Ri ao Acumulador.
Soma o Dado ao Acumulador.
Soma o contedo do Registro n e o Carry ao Acumulador.
Soma o contedo da posio de memria e o Carry ao Acumulador.
Soma o contedo da posio de memria endereada por Ri e o Carry ao Acumulador.
Soma o Dado e o Carry ao Acumulador.
ESVIO
Chama sub-rotina numa faixa de 2 Kbytes da atual posio.
Chama sub-rotina em qualquer posio da memria de programa (ROM).
Retorno de sub-rotina.
Retorno de rotina de interrupo.
Salta para outro endereo numa faixa de 2Kbytes da atual.
Salta para qualquer posio de memria de programa (ROM).
Salto curto relativo. Salta 127 posies para frente ou 128 para trs.
Salta para o endereo A + DPTR.
Salta se o Acumulador for zero.
Salta se o Acumulador no for zero.
Compara e salta se o Acumulador for diferente da memria endereada.
Compara e salta se o Acumulador for diferente do Dado.
CAS
Zera o Acumulador.
Complementa o Acumulador.
Desloca o Acumulador esquerda.
Desloca o Acumulador esquerda atravs do Carry.
Desloca o Acumulador direita.
Desloca o Acumulador direita atravs do Carry.
Troca o nibble inferior do Acumulador com o superior. Equivale a 4 vezes RR A ou RL A.
Executa a operao AND entre o Registro n e o Acumulador.
Executa a operao And entre o contedo da posio de memria e o Acumulador.
Executa a operao AND entre o contedo da posio de memria endereada por Ri.
Executa a operao AND entre o Dado e o Acumulador.
Executa a operao AND entre o contedo da posio endereada e Acumulador.
Executa a operao AND entre a posio de memria endereada e Dado.
Executa a operao OR entre o Registro n e o Acumulador.
Executa a operao OR entre o contedo da posio de memria e o Acumulador.
Executa a operao OR entre o contedo da posio de memria endereada por Ri.
Executa a operao OR entre o Dado e o Acumulador.
Executa a operao OR entre o contedo da posio endereada e Acumulador.
Executa a operao OR entre a posio de memria endereada e o Dado.
Executa a operao "OU EXCLUSIVO" entre o Registro n e o Acumulador.
Executa a operao "OU EXCLUSIVO" entre o contedo da posio de memria e o Acumulador. O
resultado fica no Acumulador.
Executa a operao "OU EXCLUSIVO" entre o contedo da posio de memria endereada por Ri e o
Acumulador.
Executa a operao OU EXCLUSIVO" entre o Dado e o Acumulador.
Executa a operao "OU EXCLUSIVO" entre o contedo da posio de memria e o Acumulador O
resultado fica na posio de memria.
Executa a operao "OU EXCLUSIVO" entre o Dado e o contedo da posio de memria. O resultado
fica na posio de memria.
ONTROLADOR 8051
Bytes
Impulsos
1
2
1
2
1
2
2
2
2
3
2
3
1
2
2
3
12
12
12
12
12
24
12
12
24
24
24
24
12
24
12
24
24
24
24
24
24
24
24
2
1
2
1
24
12
12
12
12
1
2
1
2
1
2
1
2
12
12
12
12
12
12
12
12
1
2
1
1
1
1
2
1
1
1
2
1
1
1
1
1
12
12
12
12
12
12
12
12
12
12
12
12
24
48
48
12
1
2
1
2
1
2
2
2
2
2
2
2
2
2
3
3
3
12
12
12
12
12
12
24
24
24
24
12
24
24
24
24
24
24
2
3
1
1
2
3
2
1
2
2
3
3
24
24
24
24
24
24
24
24
24
24
24
24
3
3
2
3
1
24
24
24
24
12
1
1
1
1
1
1
1
1
2
1
2
2
3
1
2
1
2
2
3
1
12
12
12
12
12
12
12
12
12
12
12
12
24
12
12
12
12
12
24
12
12
12
12
12
24