Você está na página 1de 2

SUBB A,#dado ORL direto,A

Subtrai do ACC, o dado e o “vem um” (se Armazena no endereço “direto” o resultado
existir), o resultado é armazenado no ACC. da operação lógica OR entre o endereço
INC A “direto” e o acumulador.
Soma 1 ao ACC. ORL direto,#dado
INC Rn Armazena no endereço “direto” o resultado
da operação lógica OR entre o endereço
Soma 1 ao conteúdo de Rn (R0 à R7).
“direto” e o dado.
INC direto
XRL A,Rn
Soma 1 ao conteúdo da posição de memória.
Armazena no acumulador o resultado da
INC @Ri operação lógica XOR entre o acumulador e o
Prof. Corradi Soma 1 ao conteúdo de memória indicado por registrador Rn.
Ri (R1 ou R0).
XRL A,direto
DEC A Armazena no acumulador o resultado da
Subtrai 1 do ACC. operação lógica XOR entre o acumulador e
DEC Rn conteúdo do endereço “direto”.
Subtrai 1 do conteúdo de Rn (R0 à R7). XRL A,@Ri
DEC direto Armazena no acumulador o resultado da
Subtrai 1 do conteúdo da posição de memória. operação lógica XOR entre o acumulador e
conteúdo endereçado registrador Ri.
DEC @Ri
Subtrai 1 do conteúdo da posição de memória XRL A,#dado
indicado por Ri (R1 ou R0). Armazena no acumulador o resultado da
operação lógica XOR entre acumulador e o
INC DPTR dado.
Soma 1 ao registrador DPTR.
XRL direto,A
MUL AB Armazena no endereço “direto” o resultado
Multiplica o conteúdo do ACC pelo conteúdo da operação lógica XOR entre o endereço
do registrador B. O resultado fica em B “direto” e o acumulador.
(MSB) e ACC (LSB).
Set de Instruções DIV AB
Divide o conteúdo do ACC pelo conteúdo do
XRL direto,#dado
Armazena no endereço “direto” o resultado
da operação lógica XOR entre o endereço
registrador B. O resultado fica em A e o “direto” e o dado.
Família MCS51 resto em B.
DA
CLR A
Zera o acumulador (RESET ACC).
Converte em BCD o conteúdo do ACC.
CPL A
Tabela de Operações Aritméticas Complementa todos os bits do acumulador.
Mnemônico Tabela de Operações Lógicas RL A
Descrição ANL A,Rn Rotaciona todos os bits do acumulador para
ADD A,Rn Armazena no acumulador o resultado da esquerda.
Soma o conteúdo de Rn com ACC, o resultado da operação lógica AND entre acumulador e RLC A
soma é armazenado no ACC. registrador Rn. Rotaciona todos os bits do acumulador para
ADD A,direto ANL A,direto esquerda junto com o flag carry.
Soma o conteúdo da posição de memória com ACC, Armazena no acumulador o resultado da RR A
o resultado é armazenado no ACC operação lógica AND entre o acumulador e Rotaciona todos os bits do acumulador para
conteúdo do endereço “direto”. direta.
ADD A,@Ri
Soma o conteúdo da posição de memória indicado ANL A,@Ri RRC A
por Ri (R1 ou R0) com ACC, armazenando o Armazena no acumulador o resultado da Rotaciona todos os bits do acumulador para
resultado no ACC. operação lógica AND entre o acumulador e o direita junto com o flag carry.
conteúdo endereçado pelo registrador Ri.
ADD A,#dado SWAP A
Soma o dado ao ACC. O resultado é armazenado ANL A,#dado Troca todos o nibbles do acumulador
no ACC. Armazena no acumulador o resultado da (equivale a 4 instruções RL A)
operação lógica AND entre o acumulador e o
ADDC A,Rn
dado.
Soma o conteúdo de Rn (R0 à R7) ao ACC, e com
ANL direto,A Transferência de Dados
o flag carry, o resultado é armazenado no ACC.
Armazena no endereço “direto” o resultado da MOV A,Rn
ADDC A,direto
operação lógica AND entre o endereço Carrega o acumulador com conteúdo do
Soma o conteúdo da posição, de memória com o
“direto” e o acumulador. registrador Rn.
ACC, e com flag carry, o resultado é
armazenado no ACC. ANL direto,#dado MOV A,direto
Armazena no endereço “direto” o resultado da Carrega o acumulador com o conteúdo do
ADDC A,@Ri
operação lógica AND entre o endereço endereço “direto” (endereços dos
Soma o conteúdo da posição de memória indicado “direto” e o dado. registradores internos).
por Ri (R1 ou R0) com o ACC, e com o flag
carry, o resultado é armazenado no ACC. ORL A,Rn MOV A,@Ri
Armazena no acumulador o resultado da Carrega o acumulador com conteúdo
ADDC A,#dado
operação lógica OR entre o acumulador e endereçado pelo registrador Ri.
Soma o dado ao ACC, e o flag carry, o
registrado Rn.
resultado é armazenado no ACC. MOV A,#dado
ORL A,direto Carrega o acumulador com dado.
SUBB A,Rn
Armazena no acumulador o resultado da
Subtrai do ACC, o conteúdo de Rn (R0 à R7) e o MOV Rn,A
operação lógica OR entre acumulador e
“vem um” (borrow), o resultado é armazenado no Carrega o registrador Rn com o conteúdo do
conteúdo do endereço “direto”.
ACC. acumulador.
ORL A,@Ri
SUBB A,direto MOV Rn,direto
Armazena no acumulador o resultado da
Subtrai do ACC, o conteúdo da posição de Carrega o registrador Rn com o conteúdo do
operação lógica OR entre o acumulador e o
memória e o “vem um” (borrow), o resultado é endereço “direto”.
conteúdo endereçado pelo registrador Ri.
armazenado no ACC. MOV Rn,#dado
ORL A,#dado
SUBB A,@Ri Carrega o registrador Rn com dado.
Armazena no acumulador o resultado da
Subtrai do ACC, o conteúdo da posição de MOV direto,A
operação lógica OR entre o acumulador e
memória indicada por Ri (R1 ou R0) e o vem um dado. Carrega o endereço “direto” com o conteúdo
(se existir) o resultado é armazenado no ACC.
do acumulador.
MOV direto,Rn
Rn - Registrador R0 – R7 do banco de registradores selecionado. Carrega o endereço “direto” com o conteúdo
direto - 8-bits de endereço da posição da RAM de dados interna. Podem ser referentes do registrador Rn.
tanto à RAM interna (0–7F) como ao espaço SFR (80 - FF).
@Ri - 8-bits da RAM interna de dados (00 - FF) endereçada indiretamente através de R0 ou
R1 do banco de registradores selecionado.
#dado - valor de 8-bits contida na instrução.
#dado16 - valoro de 16-bits contida na instrução.
addr16 - Endereço de destino em 16-bits. Usado pelas instruções LCALL e LJMP, podendo
acessar toda a memória.
addr11 - Endereço de destino em 11-bits. Usado pelas instruções ACALL e AJMP, podendo
acessar 2Kb de distância da instrução usada.
rel - Endereço relativo em 8-bits. Pode alcançar uma distância de -128 a +127 bytes de
distância da instrução seguinte à instrução usada. Note que o valor negativo deve ser
obtido por complemento de dois.
bit - Endereço direto do bit. Pode acessar a RAM interna e o espaço SFR.
MOV direto1,direto2 ANL C,bit JC rel
Carrega o endereço “direto1” com o conteúdo Armazena no flag carry o resultado da Desvia para o endereço “rel” se o flag carry
do endereço “direto2”. operação lógica AND entre o flag carry e o estiver setado.
MOV direto,@Ri bit endereçável (bit de pino ou bit de JNC rel
registrador).
Carrega o endereço “direto” com o conteúdo Desvia para o endereço “rel” se o flag carry
do endereço apontado pelo registrador Ri. ANL C,/bit estiver zerado.
MOV direto,#dado Armazena no flag carry o resultado da JB bit,rel
operação lógica AND entre o flag carry e o
Carrega o endereço “direto” com o dado. Desvia para o endereço “rel” se o bit
complemento do bit endereçável (bit de pino endereçável estiver setado.
MOV @Ri,A ou bit de registrador).
Carrega o registrador endereçado por Ri com JNB bit,rel
ORL C,bit
o conteúdo do acumulador. Desvia para o endereço “rel” se o bit
Armazena no flag carry o resultado da endereçável estiver zerado.
MOV @RI,direto operação lógica OR entre o flag carry e o
Carrega o registrador endereçado por Ri com bit endereçável (bit de pino ou bit de JBC bit,rel
o conteúdo do endereço “direto”. registrador). Desvia para o endereço “rel” se o bit
MOV @Ri,#dado endereçável estiver setado e depois zera o
ORL C,/bit
Carrega o registrador endereçado por Ri com bit.
Armazena no flag carry o resultado da
o dado. operação lógica OR entre o flag carry e o CJNE A,direto,rel
MOV DPTR,dado16 complemento do bit endereçável (bit de pino Compara o conteúdo do acumulador com o
ou bit de registrador). conteúdo do endereço “direto”, e desvia para
Carrega o registrador DPTR com o dado de 16
o endereço “rel” se for diferente.
bits. MOV C,bit
Armazena no flag carry o conteúdo do bit CJNE A,#dado,rel
MOVC A,@A+DPTR
endereçável (bit de pino ou bit de Compara o conteúdo do acumulador com o dado,
Carrega o acumulador com o conteúdo
registrador). e desvia para o endereço “rel” se for
endereçado pelo acumulador mais o
diferente.
registrador DPTR. MOV bit,C
Armazena no bit endereçável (bit de pino ou CJNE Rn,#dado,rel
MOVC A,@A+PC
bit de registrador) o conteúdo do flag Compara o conteúdo do registrador Rn com o
Carrega o acumulador com o conteúdo
carry. dado, e desvia para o endereço “rel” se for
endereçado pelo acumulador mais o
diferente.
registrador PC.
CJNE @Ri,#dado,rel
MOVX A,@RI Fluxo de execução
Compara o conteúdo endereçado por Ri com o
Carrega o acumulador com o conteúdo da RAM
ACALL End 11 dado, e devia para o endereço “rel” se for
externa endereçado pelo registrador Ri.
Chamada de sub-rotina (11 bits, 2 kbytes da diferente.
MOVX A,@DPTR posição atual). DJNZ Rn,rel
Carrega o acumulador com o conteúdo da RAM
LCALL End 16 Decrementa o registrador Rn e desvia para o
externa endereçado pelo registrador DPTR.
Chamada de sub-rotina (16 bits, qualquer endereço “rel” se o resultado for diferente
MOVX @Ri,A posição da EEPROM). de zero.
Carrega o registrador da RAM externa
RET DJNZ direto,rel
endereçado pelo registrador de 8 bits Ri,
Retorno de sub-rotina. Decrementa o endereço “direto” e desvia para
com o conteúdo do acumulador.
RETI o endereço “rel” se o resultado for
MOVX @DPTR,A diferente de zero.
Retorno de sub-rotina de interrupção.
Carrega o registrador da RAM externa
NOP
endereçado pelo registrador de 16 bits AJMP End 11
DPTR, com o conteúdo do acumulador. Não faz nada.
Desvio curto para endereço de 11 bits, 2
PUSH direto kbytes da posição atual.
Incrementa o registrador SP e
pilha o conteúdo do acumulador.
salva na LJMP End 16
Desvio longo para endereço de 16 bits,
Sistema mínimo para o 8051
POP direto qualquer posição da EEPROM.
Armazena na memória o conteúdo da pilha e SJMP rel
decrementa o registrador SP. Desvio relativo curto.
XCH A,Rn JMP @A+DPTR
Troca os dados do acumulador com o Desvio indireto para a posição de memória
registrador Rn. endereçada pelo acumulador mais o
XCH A,direto registrador DPTR.
Troca os dados do acumulador com o endereço JZ rel
“direto”. Desvia para o endereço “rel” se o
XCH A,@Ri acumulador for igual a zero.
Troca os dados do acumulador com o JNZ rel
registrador endereçado por Rn. Desvia para o endereço “rel” se o
XCHD A,@Ri acumulador for diferente de zero.
Troca os nibbles menos significativos do
acumulador com o registrador endereçado por Pinagem do 8051
Ri.

Variáveis Booleanas
CLR C
Armazena 0 no flag carry.
CLR bit
Armazena 0 no bit endereçável (bit de pino
ou bit de registrador).
SETB C Aplicação I/O
Armazena 1 no flag carry.
SETB bit
Armazena 1 no bit endereçável (bit de pino
ou bit de registrador).
CPL C
Complementa flag carry.
CPL bit
Complementa o bit endereçável (bit de pino
ou bit de registrador).

Você também pode gostar