Professional Documents
Culture Documents
Rn - Registrador R0 R7 do banco de registradores selecionado. direto - 8-bits de endereo da posio da RAM de dados interna. Podem ser referentes tanto RAM interna (0 7F) como ao espao SFR (80 - FF). @Ri - 8-bits da RAM interna de dados (00 - FF) endereada indiretamente atravs de R0 ou R1 do banco de registradores selecionado. #dado - valor de 8-bits contida na instruo. #dado16 - valoro de 16-bits contida na instruo. addr16 - Endereo de destino em 16-bits. Usado pelas instrues LCALL e LJMP, podendo acessar toda a memria. addr11 - Endereo de destino em 11-bits. Usado pelas instrues ACALL e AJMP, podendo acessar 2Kb de distncia da instruo usada. rel - Endereo relativo em 8-bits. Pode alcanar uma distncia de -128 a +127 bytes de distncia da instruo seguinte instruo usada. Note que o valor negativo deve ser obtido por complemento de dois. bit - Endereo direto do bit. Pode acessar a RAM interna e o espao SFR.
Mnemnico
Descrio
Bytes
Perodos de clock
Operaes Aritmticas
ADD ADD ADD ADD ADDC ADDC A, Rn A, direto A, @Ri A, #dado A, Rn A, direto Soma o contedo do registrador Rn ao ACC. Soma o contedo da RAM interna do endereo "direto" ao ACC. Soma o contedo da RAM apontada por Ri ao ACC. Soma o valor dado ao ACC. Soma o contedo do registrador Rn ao ACC mais o carry. Soma o contedo da RAM interna do endereo "direto" ao ACC mais o carry. Soma o contedo da RAM interna apontada por Ri ao ACC mais o carry. Soma o valor dado ao ACC mais o carry. Subtrai o contedo do registrador Rn do ACC menos o carry. 1 2 1 2 1 2 12 12 12 12 12 12
ADDC
A, @Ri
12
ADDC SUBB
A, #dado A, Rn
2 1
12 12
SUBB
A, direto
Subtrai do ACC o contedo da RAM interna do endereo "direto" menos o carry. Subtrai do ACC o contedo da RAM interna apontada por Ri menos o carry. Subtrai do ACC o valor dado menos o carry. Incrementa o ACC. Incrementa o registrador Rn de uma unidade. Incrementa de uma unidade o contedo do endereo "direto" da RAM interna. Incrementa de uma unidade o contedo da posio de memria da RAM interna apontada pelo registrador Ri. Decrementa o ACC de uma unidade. Decrementa o registrador Rn de uma unidade. Decrementa de uma unidade o contedo do endereo "direto" da RAM interna. Decrementa de uma unidade o contedo do endereo da RAM interna apontado por Ri. Incrementa de uma unidade o registrador de 16 Bits DPTR. Multiplica A por B. Divide A por B. Ajuste decimal do ACC.
12
SUBB
A, @Ri
12
A, #dado A Rn direto
2 1 1 2
12 12 12 12
INC
@Ri
12
A Rn direto
1 1 2
12 12 12
DEC
@Ri
12
DPTR AB AB A
1 1 1 1
24 48 48 12
Operaes lgicas
ANL ANL A, Rn A, direto Lgica AND do registrador Rn com o ACC. Lgica AND do contedo do endereo "direto" da RAM interna com o ACC. Lgica AND do contedo do endereo da RAM interna apontado por Ri com o ACC. Lgica AND do valor dado com o ACC. Lgica AND do ACC com o contedo do endereo "direto" da RAM interna. 1 2 12 12
ANL
A, @Ri
12
ANL ANL
A, #dado direto, A
2 2
12 12
ANL
Lgica AND do valor dado com o contedo do endereo "direto" da RAM interna. Lgica OR do registrador Rn com o ACC. Lgica OR do contedo do endereo "direto" da RAM interna com o ACC. Lgica OR do contedo do endereo da RAM interna apontado por Ri com o ACC. Lgica OR do valor dado com o ACC. Lgica OR do ACC com o contedo do endereo "direto"da RAM interna. Lgica OR do valor dado com o contedo do endereo "direto" da RAM interna. Lgica OU Exclusivo do registrador Rn com o ACC. Lgica OU Exclusivo do contedo do endereo "direto" da RAM interna com o ACC. Lgica OU Exclusivo do contedo do endereo da RAM interna apontado por Ri com o ACC. Lgica OR Exclusivo do valor dado com o ACC. Lgica OU Exclusivo do ACC com o contedo do endereo "direto" da RAM interna. Lgica OU Exclusivo do valor dado com o contedo do endereo "direto" da RAM interna. Zera o ACC. Complementa o ACC. Rotaciona o ACC para a esquerda. Rotaciona o ACC para a esquerda com o carry. Rotaciona o ACC para direita. Rotaciona o ACC para direita com o carry. Troca os "nibbles" do ACC entre si
24
ORL ORL
1 2
12 12
ORL
A, @Ri
12
ORL ORL
A, #dado direto, A
2 2
12 12
ORL
24
XRL XRL
1 2
12 12
XRL
A, @Ri
12
XRL XRL
A, #dado direto, A
2 2
12 12
XRL
direto, #dado A A A A A A A
24
1 1 1 1 1 1 1
12 12 12 12 12 12 12
Transferncia de dados
A, Rn A, direto A, @Ri
Move o contedo do registrador para o ACC. Move contedo do endereo "direto" da RAM interna para o ACC. Move o contedo da posio de memria da RAM interna apontado por Ri para o ACC. Move o valor dado para o ACC. Move o ACC para o registrador Rn. Move contedo do endereo "direto" da RAM interna para o registrador Rn. Move o valor dado para o registrador Rn. Move ACC para o endereo "direto" da RAM interna. Move o registrador Rn para o contedo do endereo "direto". Move contedo do endereo "direto" da RAM interna para o contedo do endereo "direto1" Move o contedo da posio de memria da RAM interna apontado por Ri para o endereo "direto" da RAM interna. Move o valor dado para o contedo do endereo "direto"da RAM interna. Move ACC para a posio de memria da RAM interna apontado por Ri. Move o contedo dado endereo "direto" da RAM interna para posio de memria da RAM interna apontada por Ri. Move o valor dado para a posio de memria da RAM interna apontada por Ri. Carrega o DPTR com um dado de 16 bits.
1 2 1
12 12 12
2 1 2
12 12 24
2 2 2 3
12 12 24 24
MOV
24
MOV
24
MOV MOV
1 2
12 24
MOV
12
MOV
24
MOVC
Move um byte da memria de Programa apontado por (A+DPTR) para o ACC. Move um byte da memria de Programa apontado por (A+PC) para o ACC. Move o contedo da posio de memria da RAM externa apontada por Ri (endereo de 8-bits) para o ACC. Move o contedo da posio de memria da RAM externa apontado por DPTR (endereo de 16-bits) para o ACC.
24
MOVC
24
MOVX
A, @Ri
24
MOVX
A, @DPTR
24
MOVX
@Ri, A
Move o ACC para a posio de memria da RAM externa apontado por Ri (endereo de 8-bits). Move o ACC para a posio de memria da RAM externa apontado DPTR (endereo de 16-bits) . Salva contedo do endereo "direto" da RAM interna na pilha na posio de memria apontada por SP. Retira da pilha o contedo do endereo apontado por SP e coloca no endereo "direto". Troca contedo do registrador Rn com o ACC. Troca o contedo do endereo "direto" com o ACC. Troca o contedo da RAM interna apontado por Ri com o ACC. Troca o "nibble" menos significativo do ACC com o nibble menos significativo do contedo do endereo apontado por Ri
24
MOVX
@DPTR, A
24
PUSH
direto
24
POP
direto
24
1 2 1 1
12 12 12 12
Instrues boleanas
CLR CLR SETB SETB CPL CPL ANL ANL ORL ORL MOV MOV JC JNC C bit C bit C bit C, bit C, /bit C, bit C, /bit C, bit bit, C rel rel Zera o carry. Zera o bit especificado. Coloca o carry em nvel lgico "1". Coloca o bit especificado em nvel lgico "1". Complementa o carry. Complementa o bit especificado. Lgica AND do bit especificado e o carry. Lgica AND do bit especificado complementado e o carry. Lgica OR do bit especificado e o carry. Lgica OR do bit especificado complementado e o carry. Move bit especificado para o carry. Move carry para o bit especificado Salta para o endereo rel se o carry estiver em "1". Salta para o endereo rel se o carry no estiver em "1". 1 2 1 2 1 2 2 2 2 2 2 2 2 2 12 12 12 12 12 12 24 24 24 24 12 24 24 24
JB JNB JBC
Salta para o endereo rel se o bit especificado estiver em "1". Salta para o endereo rel se o bit especificado no estiver em "1". Salta para o endereo rel se o bit especificado estiver em "1" e zera o bit.
3 3 3
24 24 24
Instrues de desvio
ACALL LCALL RET RETI AJMP LJMP SJMP JMP JZ addr 11 addr 16 rel @A+DPTR rel addr 11 addr 16 Chamada de sub-rotina absoluta (at 2k). Chamada de sub-rotina distante (at 64k). Retorno da sub-rotina. Retorno da sub-rotina de uma interrupo. Salto absoluto (at 2k). Salto longo (at 64k). Salto curto (entre 128 e 127 bytes.). Salta para o endereo apontado por DPTR + ACC Salta para o endereo rel se o resultado da operao no ACC for zero (Z=1). Salta para o endereo rel se o resultado da operao no ACC no for zero (Z=0). Compara o ACC e o contedo do endereo direto e salta para o endereo rel se no for igual. Compara o ACC e o dado e salta para o endereo rel se no for igual. Compara o dado com o registrador Rn e salta para o endereo rel se no for igual. Compara o dado com o contedo da posio de memria da RAM interna apontado por Ri e salta para rel se no for igual. Decrementa de uma unidade o registrador Rn e salta para rel se no for zero. Decrementa de uma unidade o contedo da posio de memria "direto da RAM interna e salta para rel se no for zero. Nenhuma operao. 2 3 1 1 2 3 2 1 2 24 24 24 24 24 24 24 24 24
JNZ
rel
24
CJNE
A, direto, rel. A, #dado, rel. Rn, #dado, rel. @Ri, #dado, rel. Rn, rel.
24
CJNE
24
CJNE
24
CJNE
24
DJNZ
24
DJNZ
direto, rel.
24
NOP
12