You are on page 1of 6

CONJUNTO DE INSTRUES

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

SUBB INC INC INC

A, #dado A Rn direto

2 1 1 2

12 12 12 12

INC

@Ri

12

DEC DEC DEC

A Rn direto

1 1 2

12 12 12

DEC

@Ri

12

INC MUL DIV DA

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

direto, #dado A, Rn A, direto

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

direto, #dado A, Rn A, direto

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

CLR CPL RL RLC RR RRC SWAP

1 1 1 1 1 1 1

12 12 12 12 12 12 12

Transferncia de dados

MOV MOV MOV

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

MOV MOV MOV

A, #dado Rn, A Rn, direto

2 1 2

12 12 24

MOV MOV MOV MOV

Rn, #dado direto, A direto, Rn direto1, direto direto, @Ri

2 2 2 3

12 12 24 24

MOV

24

MOV

direto, #dado @Ri, A @Ri, direto

24

MOV MOV

1 2

12 24

MOV

@Ri, #dado DPTR, #dado16 A, @A+DPTR A, @A+PC

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

XCH XCH XCH XCHD

A, Rn A, direto A, @Ri A, @Ri

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

bit,rel bit,rel bit, rel

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

You might also like