.: CONTROL CHIP :. Integrando suas idéias
 
     
 
Home>> Central Info >> Microcontroladores 8051 >> Conjunto de Instrucoes da familia 8051

Central de Informações


Instruções de Transferência de Dados (  Datasheet Completo )

 

MOV A,Rn                        Move o Registro n para o Acumulador.
MOV A,Direto                  Move o conteúdo da posição de memória para o Acumulador.
MOV A,@Ri                     Move o conteúdo da RAM interna endereçada po Ri para o Acumulador.
MOV A,#Dado                 Move o Dado para o Acumulador.
MOV Rn,A                        Move o conteúdo do Acumulador para o Registro n.
MOV Rn,Direto               Move o conteúdo da memória para o Registro n.
MOV Rn,#Dado              Move o Dado para o Registro n.
MOV Direto,A                  Move o conteúdo do Acumulador para a posição de memória.
MOV Direto,Rn               Move o conteúdo do Registro n para a posição de memória.
MOV Direto1,Direto2     Move o conteúdo da posição de memória 2 para a posição de memória 1.
MOV Direto,@Ri             Move o conteúdo da posição de memória endereçada por Ri para a posição de memória.
MOV Direto,#Dado        Move o Dado para a posição de memória.
MOV @Ri,A                     Move o conteúdo do Acumulador para a posição de memória endereçada por Ri.
MOV @Ri,Direto            Move o conteúdo da posição de memória para a posição de memória endereçada por Ri.
MOV @Ri,#Dado           Move o Dado para a posição de memória endereçada por Ri.
MOV DPTR,#Dado 16  Move o Dado de 16 bits para o Registro DPTR.
MOVC A,@A+DPTR      Move o conteúdo da posição de memória da ROM endereçada por A + DPTR. O endereço será de 16 bits.
MOVC A,@A+PC           Move o conteúdo da posição de memória da ROM endereçada por A + PC. O endereço será de 16 bits.
MOVX A,@Ri                  Move o conteúdo da posição de memória da RAM externa endereçada por Ri para o Acumulador.
MOVX A,@DPTR           Move o conteúdo da posição de memória da RAM externa endereçada por DPTR para o Acumulador.
MOVX @Ri,A                  Move o conteúdo do Acumulador para a posição de memória da RAM externa endereçada por Ri.
MOVX @DPTR,A           Move o conteúdo do Acumulador para a posição de memória da RAM externa endereçada por DPTR.
PUSH Direto                  Coloca na pilha o conteúdo da posição de memória. Incrementa o SP (Stack Pointer) e escreve na pilha.
POP Direto                     Retira da pilha o Dado e coloca na posição de memória.
XCH A,Rn                       Troca entre si os conteúdo do Acumulador e do Registro n.
XCH A,Direto                 Troca entre si os conteúdo do Acumulador e do Registro n.
XCH A,@Ri                    Troca entre si os conteúdo do Acumulador e da posição de memória endereçada por Ri.
XCHD A,@Ri                 Troca os nibbles menos significativos do conteúdo do Acumulador e da posição de memória endereçada por Ri.

 

 

Instruções Aritméticas

 

ADD A,Rn                       Soma o conteúdo do Registro n ao Acumulador.
ADD A,Direto                 Soma o conteúdo da posição de memória ao Acumulador.
ADD A,@Ri                    Soma o conteúdo da posição de memória endereçada por Ri ao Acumulador.
ADD A,#Dado                Soma o Dado ao Acumulador.
ADDC A,Rn                    Soma o conteúdo do Registro n e o Carry ao Acumulador.
ADDC A,Direto              Soma o conteúdo da posição de memória e o Carry ao Acumulador.
ADDC A,@Ri                 Soma o conteúdo da posição de memória endereçada por Ri e o Carry ao Acumulador.
ADDC A,#Dado             Soma o Dado e o Carry ao Acumulador.
SUBB A,Rn                    Subtrai o conteúdo do Registro n e o Carry do Acumulador.
SUBB A,Direto              Subtrai o conteúdo da posição de memória e o Carry do Acumulador.
SUBB A,@Ri                 Subtrai o conteúdo da posição de memória endereçada por Ri e o Carry do Acumulador.
SUBB A,#Dado             Subtrai o Dado e o Carry do Acumulador.
INC A                              Incrementa o Acumulador.
INC Rn                           Incrementa o Registro n.
INC Direto                      Incrementa o conteúdo da posição de memória.
INC @Ri                         Incrementa o conteúdo da posição de memória endereçada por Ri.
DEC A                             Decrementa o Acumulador.
DEC Rn                          Decrementa o Registro n.
DEC Direto                    Decrementa o conteúdo da posição de memória.
DEC @Ri                       Decrementa o conteúdo da posição de memória endereçada por Ri.
INC DPTR                      Incrementa o DPTR.
MUL AB                           Multiplica A e B. O resultado fica: parte mais significativa em B e menos significativa em Acumulador.
DIV AB                             Divide A e B. O resultado fica: a parte inteira no Acumulador e o resto em B.
DA A                                 Faz o ajuste decimal do acumulador.

 

 

Instruções Booleanas

 

CLR C                             Zera o Carry.
CLR Bit                           Zera o bit Endereçado.
SETB C                           Seta o Carry.
SETB Bit                         Seta o bit endereçado.
CPL C                             Complementa o Carry.
CPL Bit                            Complementa o bit endereçado.
ANL C,Bit                        Operação AND entre o Carry e o bit endereçado.
ANL C,/Bit                       Operação AND entre o Carry e o complemento do bit endereçado.
ORL C,Bit                       Operação OR entre o Carry e o bit endereçado.
ORL C,/Bit                      Operação OR entre o Carry e o complemento do bit endereçado.
MOV C,Bit                       Move o bit endereçado para o Carry.
MOV Bit,C                       Move o Carry para o bit endereçado.
JC rel                              Salta se o Carry for "1". O jump é relativo.
JNC rel                           Salta se o Carry for "0". O jump é relativo.
JB Bit, rel                        Salta se o bit endereçado estiver em "1".
JNB Bit,rel                      Salta se o bit endereçado estiver em "0".
JBC Bit,rel                      Salta se o bit endereçado estiver em "1" depois zera o bit.

 

 

Instruções de desvio

 

ACALL End 11             Chama sub-rotina numa faixa de 2 Kbytes da atual posição.
LCALL End 16             Chama sub-rotina em qualquer posição da memória de programa (ROM).
RET                                Retorno de sub-rotina.
RETI                               Retorno de rotina de interrupção.
AJMP End 11                Salta para outro endereço numa faixa de 2Kbytes da atual.
LJMP End 16                Salta para qualquer posição de memória de programa (ROM).
SJMP rel                        Salto curto relativo. Salta 127 posições para frente ou 128 para trás.
JMP @A,DPTR             Salta para o endereço A + DPTR.
JZ rel                              Salta se o Acumulador for zero.
JNZ rel                           Salta se o Acumulador não for zero.
CJNE A, Direto, rel      Compara e salta se o Acumulador for diferente da memória endereçada.
CJNE A,#Dado,rel       Compara e salta se o Acumulador for diferente do Dado.
CJNE Rn,#Dado,rel    Compara e salta se o Registro n for diferente do Dado.
CJNE @Ri,#Dado,rel Compara e salta se o conteúdo da RAM externa endereçada for diferente do Dado .
DJNZ Rn,rel                  Decrementa o Registro n e salta se for diferente de zero.
DJNZ Direto,rel            Decrementa o conteúdo da posição de memória e salta se for diferente de zero.
NOP                               Nenhuma operação.

 

 

Instruções Lógicas

 

CLR A                           Zera o Acumulador.
CPL A                           Complementa o Acumulador.
RL A                              Desloca o Acumulador à esquerda.
RLC A                           Desloca o Acumulador à esquerda através do Carry.
RR A                              Desloca o Acumulador à direita.
RRC A                           Desloca o Acumulador à direita através do Carry.
SWAP A                         Troca o nibble inferior do Acumulador com o superior. Equivale a 4 vezes RR A ou RL A.
ANL A,Rn                      Executa a operação AND entre o Registro n e o Acumulador.
ANL A,Direto                Executa a operação And entre o conteúdo da posição de memória e o Acumulador.
ANL A,@Ri                   Executa a operação AND entre o conteúdo da posição de memória endereçada por Ri.
ANL A,#Dado               Executa a operação AND entre o Dado e o Acumulador.
ANL Direto,A                Executa a operação AND entre o conteúdo da posição endereçada e Acumulador.
ANL Direto,#Dado      Executa a operação AND entre a posição de memória endereçada e Dado.
ORL A,Rn                     Executa a operação OR entre o Registro n e o Acumulador.
ORL A,Direto               Executa a operação OR entre o conteúdo da posição de memória e o Acumulador.
ORL A,@ Ri                 Executa a operação OR entre o conteúdo da posição de memória endereçada por Ri.
ORL A,#Dado              Executa a operação OR entre o Dado e o Acumulador.
ORL Direto,A               Executa a operação OR entre o conteúdo da posição endereçada e Acumulador.
ORL Direto,#Dado     Executa a operação OR entre a posição de memória endereçada e o Dado.
XRL A,Rn                      Executa a operação "OU EXCLUSIVO" entre o Registro n e o Acumulador.
XRL A,Direto                Executa a operação "OU EXCLUSIVO" entre o conteúdo da posição de memória e o Acumulador. O resultado fica no Acumulador.
XRL A,@Ri                   Executa a operação "OU EXCLUSIVO" entre o conteúdo da posição de memória endereçada por Ri e o Acumulador.
XRL A,#Dado               Executa a operação OU EXCLUSIVO" entre o Dado e o Acumulador.
XRL Direto,A                Executa a operação "OU EXCLUSIVO" entre o conteúdo da posição de memória e o Acumulador O resultado fica na posição de memória.
XRL Direto,#Dado      Executa a operação "OU EXCLUSIVO" entre o Dado e o conteúdo da posição de memória. O resultado fica na posição de memória.