Escolar Documentos
Profissional Documentos
Cultura Documentos
Fenix Especificacao 8051 CPU
Fenix Especificacao 8051 CPU
Projeto Fnix
BRAZIL IP
Fnix Project
Histrico de Alteraes
Data
Verso
Descrio
Autor
06/08/03
1.0
Primeira
verso
do
Especificao da CPU.
documento
01/09/03
2.0
Segunda
verso
do
Especificao da CPU.
documento
de (jfbs,jcs,aaca)@cin.ufpe.br
02/09/03
2.1
Correo ortogrfica.
(jfbs,jcs,aaca)@cin.ufpe.br
Lista de Aprovadores
Nome
Cargo
Edna Barros
Srgio Cavalcante
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 2/97
Fnix Project
Contedo
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 3/97
Fnix Project
Portas de entradas e sada do 8051 (Para maiores detalhes vide especificao das portas de
entrada e sada) ................................................................................................................................... 16
1.2 Descrio___________________________________________________________________ 16
1.3 Diagrama Comportamental_____________________________________________________ 17
2. Diagrama de Blocos......................................................................................................................... 18
Nesta sesso ser mostrado um diagrama de blocos para a CPU do microcontrolador 8051 e como
foi feita a especificao do seu repertrio de instrues j se fazendo uma breve explanao de cada
uma......................................................................................................................................................... 18
A especificao do repertrio de instrues foi feita agrupando as instrues em cinco grupos:
operaes aritmticas, operaes lgicas, transferncia de dados, manipulao de variveis
booleanas e desvio de programa. O agrupamento foi feito com base na semelhana da operao
que cada instruo executa e pela forma de endereamento comum................................................. 18
Ainda dentro de cada grupo especificamos detalhadamente cada instruo e sugerimos um
diagrama de estados para uma possvel implementao..................................................................... 18
O diagrama de blocos abaixo mostra a arquitetura do microcontrolador 8051, temos um
barramento de dados de 8 bits, um barramento de endereo de 16 bits, os seguintes registradores:
SP, ACC, IR, DPTR LOW, DPTR HIGH e o PSW como registradores de 8 bits. A memria RAM
com 256 posies endereadas a byte e, contida nesta, a regio endereada a bit que vai do
endereo 20H a 2FH. Temos ainda as portas de entrada e sada P0, P1, P2 e P3. ........................... 18
Para um entendimento completo do restante da especificao o sumrio de termos apresentado
abaixo:................................................................................................................................................... 19
TERMO................................................................................................................................................ 19
DESCRIO....................................................................................................................................... 19
SFR...................................................................................................................................................... 19
Registrador de Funo Especial......................................................................................................... 19
Ciclo..................................................................................................................................................... 19
Um ciclo corresponde a 12 pulsos de clock na freqncia de 33 MHz............................................. 19
Rn......................................................................................................................................................... 19
Corresponde ao registrador R7-R0 do banco de registradores ativo................................................. 19
Direto................................................................................................................................................... 19
Endereo de um dado de 8 bits. Esse dado pode est localizado na RAM interna (0-127) ou um
SFR [portas de E/S, PSW, TCOM, etc. (128-255)].............................................................................. 19
@Ri....................................................................................................................................................... 19
Endereo de um dado de 8 bits localizado na RAM interna endereado indiretamente pelos
registradores R0 e R1. ......................................................................................................................... 19
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 4/97
Fnix Project
#dado.................................................................................................................................................... 19
Uma constante de 8 bits contida na instruo.................................................................................... 19
#dado 16............................................................................................................................................... 19
Uma constante de 16 bits contida na instruo.................................................................................. 19
Addr 16................................................................................................................................................. 19
Endereo de destino com 16 bits. Usado nas instrues LCALL e LJMP........................................ 19
Addr 11................................................................................................................................................. 20
Endereo de destino com 11 bits. Usado nas instrues ACALL e AJMP.......................................20
Rel........................................................................................................................................................ 20
Offset de 8 bits com sinal. Usado pela instruo SJMP e todas as instrues de desvio condicional.
Seu valor varia de 128 a +127............................................................................................................. 20
Bit......................................................................................................................................................... 20
Endereo direto de um bit na RAM interna ou de um SFR.............................................................. 20
3. Repertrio de Instrues.................................................................................................................. 20
A seguir temos uma tabela com todas as instrues do 8051 com uma breve descrio da sua
funcionalidade, o nmero de bytes e o nmero de ciclos que leva para executar. Adiante cada uma
das instrues ser minuciosamente detalhada................................................................................... 20
Conforme visto anteriormente neste documento as instrues do Microcontrolador 8051 foram
divididas em subgrupos por semelhanas na forma de endereamento e no tipo de operao que
executam. No decorrer desta sesso ser especificado detalhadamente o comportamento de cada
instruo do 8051 e a qual subgrupo ela pertence............................................................................... 25
Para uma melhor compreenso das instrues descritas a seguir, pode-se visualizar cada uma
delas como sendo um sub-fluxo do fluxo principal, tal sub-fluxo est contido dentro do estado de
execuo do fluxo principal.................................................................................................................. 25
Instrues Aritmticas____________________________________________________________ 27
Neste grupo esto as instrues ADD (adio de dois operandos), ADDC (adio de dois
operandos com carry flag), SUBB (subtrao de dois operandos com carry flag), INC (incrementa
operando), DEC (decrementa operando), MUL (multiplicao de dois operandos) DIV (diviso de
dois operandos) e DA (ajuste decimal)................................................................................................. 27
3.1.1 ADD A, operando.................................................................................................................. 27
ADD A, Rn........................................................................................................................................... 27
Opcode: 00101rrr (x28 ->x2F)............................................................................................................ 28
Operao: (A) (A) + (Rn)............................................................................................................... 28
ADD A, direto...................................................................................................................................... 27
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 5/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 6/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 7/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 8/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 9/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 10/97
Fnix Project
.............................................................................................................................................................. 47
RLC A.................................................................................................................................................. 47
Opcode: 00110011 (x33)..................................................................................................................... 47
Operao: (An+1) (An),.................................................................................................................. 47
n = 0 6,........................................................................................................................... 47
(A0) C,.......................................................................................................................... 47
3.2.11 RR A.................................................................................................................................... 47
Fluxo:................................................................................................................................................... 47
1. Rotaciona os bits do Acumulador e coloca o resultado no Acumulador;...................................... 47
2. No afeta nenhum flag..................................................................................................................... 47
Diagrama de Execuo da Instruo RR A....................................................................................... 47
.............................................................................................................................................................. 48
RL A..................................................................................................................................................... 48
Opcode: 00000011 (x3)....................................................................................................................... 48
Operao: (An) (An+1),.................................................................................................................. 48
n = 0 6,.......................................................................................................................... 48
3.2.12 RRC A.................................................................................................................................. 48
Funo: Rotao a Direita com o Carry Flag................................................................................... 48
Fluxo:................................................................................................................................................... 48
1. Rotaciona os bits do Acumulador e coloca o resultado no Acumulador;...................................... 48
2. Afeta carry flag................................................................................................................................. 48
Diagrama de Execuo da Instruo RRC A.................................................................................... 49
.............................................................................................................................................................. 49
RLC A.................................................................................................................................................. 49
Opcode: 00010011 (x13)..................................................................................................................... 49
Operao: (An) (An+1),.................................................................................................................. 49
n = 0 6,........................................................................................................................... 49
(A7) C,.......................................................................................................................... 49
3.2.13 SWAP A.............................................................................................................................. 49
SWAP A............................................................................................................................................... 50
Opcode: 11000100 (xC4)..................................................................................................................... 50
3.3 Instrues de transferncia de dados_____________________________________________ 50
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 11/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 12/97
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 13/97
Fnix Project
71
71
72
73
75
76
77
78
79
80
81
83
83
84
85
86
fenix_especificao_8051_CPU.d
oc
Pg 14/97
87
87
89
90
Fnix Project
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 15/97
Fnix Project
Esta subseo explica o conceito de alguns termos importantes que sero mencionados no decorrer
deste documento. Estes termos so descritos na tabela a seguir, estando apresentados por ordem
alfabtica.
Termo
1.2
Descrio
OV
Overflow
SP
Stack Pointer
ACC, A
Acumulador
IR
Registrador de Instruo
DPTR LOW
DPTR HIGH
PSW
Carry flag
AC
Registrador B
SBUF
Write_to_sbuf
P0, P1, P2 e P3
Descrio
Temporizao: O ciclo de instruo do 8051 se divide em 6 estados, cada estado em duas fases e cada
uma das fases tem a durao de um ciclo de clock, totalizando assim 12 ciclos de clock por ciclo de
instruo. Para se referir a uma fase em especfico se utiliza a notao SxPy, onde x representa o
nmero do estado e y o nmero da fase.
Pr-condies: no se aplica.
Ps-condies: no se aplica.
fenix_especificao_8051_CPU.d
oc
Pg 16/97
Fnix Project
Subfluxo
[SB001] Verifica o Reset
1. A CPU verifica o reset na fase dois (P2) do estado S5, porm o reset s ser ativado se estiver
por dois ciclos de instruo ativado(24 ciclos de clock). Caso essa condio seja atendida a
CPU responde gerando um reset interno. Durante a verificao do Reset, ALE e PSEN (Vide
especificao Portas de Entrada/Sada) mantm suas atividades atuais por 19 perodos de
oscilao, para manter as atividades de leitura da memria externa, depois que o sinal de
Reset externo foi aplicado ao pino RST (pino do reset) e verificado na fase 2 do estado 5, ou
seja, quando RST ativado, de 19 a 31 perodos aps, ALE e PSEN sero ativados tambm.
1. O sinal de Reset interno escreve 0 (zero) em todos os SFRs exceto nos latches das portas, no
Stack Pointer e no SBUF. Os latches das portas so inicializados com FFH, o Stack Pointer
com 07H, e o SBUF com valor indeterminado. A RAM interna no ter valores modificados
pelo Reset. E aps RST ser desativado, decorrer entre 1 a 2 ciclos de mquina at que ALE e
PSEN voltem a oscilar.
1.3
Diagrama Comportamental
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 17/97
Fnix Project
t2
Busca da
Instruo
D ecodificao
da Instruo
Execuo da
Instruo
S egunda
checagem
consecutiva do
R esetpositiva
E xecuo do
R eset
E4
Initial
E1
t1
E2
t1
E 3_1
T rue
t1
t2
Checagem do
R eset(S5P 2)
t1
E 3_2
False
C P1
E5
C hecagem do
M anipuladorde
Interrupo
t1
2.
Di
agrama de Blocos
Nesta sesso ser mostrado um diagrama de blocos para a CPU do microcontrolador 8051 e como foi
feita a especificao do seu repertrio de instrues j se fazendo uma breve explanao de cada uma.
A especificao do repertrio de instrues foi feita agrupando as instrues em cinco grupos:
operaes aritmticas, operaes lgicas, transferncia de dados, manipulao de variveis booleanas
e desvio de programa. O agrupamento foi feito com base na semelhana da operao que cada
instruo executa e pela forma de endereamento comum.
Ainda dentro de cada grupo especificamos detalhadamente cada instruo e sugerimos um diagrama
de estados para uma possvel implementao.
O diagrama de blocos abaixo mostra a arquitetura do microcontrolador 8051, temos um barramento de
dados de 8 bits, um barramento de endereo de 16 bits, os seguintes registradores: SP, ACC, IR,
DPTR LOW, DPTR HIGH e o PSW como registradores de 8 bits. A memria RAM com 256 posies
endereadas a byte e, contida nesta, a regio endereada a bit que vai do endereo 20H a 2FH. Temos
ainda as portas de entrada e sada P0, P1, P2 e P3.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 18/97
Fnix Project
As instrues que endeream a RAM para a escrita no registrador SBUF, tero o endereo
para escrita do SBUF identificado, e o sinal write_to_sbuf ficar ativado durante um perodo de
oscilao do Clock1, quando a escrita for efetivada.
TERMO
DESCRIO
SFR
Ciclo
Rn
Direto
@Ri
#dado
#dado 16
Addr 16
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 19/97
Fnix Project
Addr 11
Rel
Offset de 8 bits com sinal. Usado pela instruo SJMP e todas as instrues
de desvio condicional. Seu valor varia de 128 a +127.
Bit
3. Repertrio de Instrues
Modos de Endereamento
Descrio
Acumulador (A)
O endereo
acumulador.
Registrador (Rn)
especificado
do
prprio
Endereamento indireto por meio do DPTR O endereo a ser acessado ser o endereo contido
(@DPTR)
no DPTR.
Dado imediato (#dado)
A seguir temos uma tabela com todas as instrues do 8051 com uma breve descrio da sua
funcionalidade, o nmero de bytes e o nmero de ciclos que leva para executar. Adiante cada uma das
instrues ser minuciosamente detalhada.
MINEMNICO
DESCRIO
NMERO DE BYTES
CICLOS
OPERAES ARITMTICAS
ADD A,Rn
ADD A,direto
ADD A,@Ri
Soma
endereo
Acumulador
com 1
ADD A,#dado
Executar Instruo
indireto
fenix_especificao_8051_CPU.d
oc
1
Pg 20/97
Fnix Project
ADDC A,Rn
ADDC A,direto
ADDC A,@Ri
Soma
endereo
Acumulador e Carry
com 1
ADDC A,#dado
SUBB A,Rn
SUBB A,direto
SUBB A,@Ri
Subtrai Acumulador
indireto com Borrow
endereo 1
SUBB A,#dado
INC A
Incrementa Acumulador
INC Rn
Incrementa registrador
INC direto
INC @Ri
DEC A
Decrementa Acumulador
DEC Rn
Decrementa registrador
DEC direto
DEC @Ri
INC DPTR
Incrementa
Register(DPTR)
Pointer 1
MUL AB
Multiplica A por B
DIV AB
Divide A por B
DA A
indireto
de
Dado
OPERAES LGICAS
ANL A,Rn
E Lgico
registrador
com 1
ANL A,direto
ANL A,@Ri
Executar Instruo
do
Acumulador
fenix_especificao_8051_CPU.d
oc
Pg 21/97
Fnix Project
Acumulador
ANL A,#dado
com 2
ANL direto,A
ANL direto,#dado
ORL A,Rn
OU Lgico
registrador
do
Acumulador
com 1
ORL A,direto
OU Lgico do
endereo direto
Acumulador
com 2
ORL A,@Ri
ORL A,#dado
ORL direto,A
OU Lgico do
endereo direto
com 2
ORL direto,#dado
XRL A,Rn
OU-Exclusivo
registrador
do
Acumulador
com 1
XRL A,direto
OU-Exclusivo do
endereo direto
Acumulador
com 2
XRL A,@Ri
XRL A,#dado
XRL direto,A
OU-Exclusivo do
endereo direto
com 2
XRL direto,#dado
CLR A
Limpa Acumulador
CPL A
RL A
RLC A
RR A
Executar Instruo
Acumulador
Acumulador
fenix_especificao_8051_CPU.d
oc
Pg 22/97
Fnix Project
RRC A
SWAP A
TRANSFENCIA DE DADOS
MOV A,Rn
MOV A,direto
MOV A,@Ri
Move
endereo
Acumulador
para 1
MOV A,#dado
MOV Rn,A
MOV Rn,direto
MOV Rn,#dado
MOV direto,A
MOV direto,Rn
MOV direto,direto
MOV direto,@Ri
MOV direto,#dado
MOV @Ri,A
Move Acumulador
indireto
endereo 1
MOV @Ri,direto
MOV @Ri,#dado
MOV DPTR,#dado16
MOVC A,@A+DPTR
MOVC A,@A+PC
MOVX A,@Ri
MOVX A,@DPTR
Executar Instruo
indireto
para
fenix_especificao_8051_CPU.d
oc
Pg 23/97
Fnix Project
MOVX @Ri, A
MOVX @DPTR, A
PUSH direto
POP direto
XCH A,Rn
XCH A,direto
XCH A,@Ri
Troca Acumulador
indireto
endereo 1
XCHD A,@Ri
com
Limpa Carry
CLR bit
SETB C
Seta o Carry
SETB bit
CPL C
CPL bit
ANL C,bit
ANL C,/bit
ORL C,bit
ORL C,/bit
MOV C,bit
MOV bit,C
INSTRUES DE DESVIO
JC rel
JNC rel
JB bit, rel
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 24/97
Fnix Project
ACALL addr11
LCALL addr16
RET
Retorno de sub-rotina
RETI
Retorno de interrupo
AJMP addr11
Desvio absoluto
LJMP addr16
SJMP rel
JMP @A+DPTR
JZ rel
JNZ rel
CJNE A,direto,rel
Compara
endereo
direto
com 3
Acumulador e desvia se no forem
iguais
CJNE A,#dado,rel
Compara
dado
imediato
com 3
Acumulador e desvia se no forem
iguais
CJNE Rn,#dado,rel
CJNE @Ri,#dado,rel
DJNZ Rn,rel
DJNZ direto,rel
NOP
fenix_especificao_8051_CPU.d
oc
Pg 25/97
Executar Instruo
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 26/97
Fnix Project
Instrues Aritmticas
Neste grupo esto as instrues ADD (adio de dois operandos), ADDC (adio de dois operandos
com carry flag), SUBB (subtrao de dois operandos com carry flag), INC (incrementa operando),
DEC (decrementa operando), MUL (multiplicao de dois operandos) DIV (diviso de dois
operandos) e DA (ajuste decimal).
3.1.1
ADD A, operando
Variaes:
ADD A, Rn
Bytes: 1
Executar Instruo
ADD A, direto
Bytes: 2
ADD A, @Ri
Bytes: 1
fenix_especificao_8051_CPU.d
oc
Pg 27/97
Fnix Project
Ciclos: 1
Opcode:
->x2F)
Ciclos: 1
00101rrr
(x28
Ciclos: 1
ADD A, #dado
Bytes: 2
Ciclos: 1
Opcode: 00100100 (x24)
Operao: (A) (A) + #dado
3.1.2
ADDC A, operando
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 28/97
Fnix Project
Variaes:
ADDC A, Rn
ADDC A, direto
ADDC A, @Ri
Bytes: 1
Bytes: 2
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
ADDC A, #dado
Bytes: 2
Ciclos: 1
Opcode: 00110100 (x34)
Operao: (A) (A) + (C) +
#dado
3.1.3
SUBB A, operando
fenix_especificao_8051_CPU.d
oc
Pg 29/97
Fnix Project
Fluxo:
1. Busca operando;
2. Executa a subtrao e coloca o resultado no Acumulador;
3. Afeta carry flag, carry flag auxiliar e OV.
Variaes:
SUBB A, Rn
SUBB A, direto
SUBB A, @Ri
Bytes: 1
Bytes: 1
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
Opcode:
x97)
1001011i
SUBB A, #dado
Bytes: 1
Executar Instruo
(x96->
fenix_especificao_8051_CPU.d
oc
Pg 30/97
Fnix Project
Ciclos: 1
Opcode: 10010100 (x94)
Operao: (A) (A) (Rn)
3.1.4
INC operando
Variaes:
INC A
INC Rn
INC direto
Bytes: 1
Bytes: 1
Bytes: 2
Ciclos: 1
Ciclos: 1
Ciclos: 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 31/97
Fnix Project
INC @Ri
INC DPTR
Bytes: 1
Bytes: 1
Ciclos: 1
Ciclos: 2
3.1.5
Opcode: 10100011(xA3)
Operao: (DPTR) (DPTR) +
1
DEC operando
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 32/97
Fnix Project
Variaes:
SUBB A, Rn
SUBB A, direto
SUBB A, @Ri
Bytes: 1
Bytes: 1
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
Opcode:
x97)
1001011i
(x96->
SUBB A, #dado
Bytes: 1
Ciclos: 1
Opcode: 10010100 (x94)
Operao: (A) (A) (Rn)
3.1.6
MUL AB
Funo: Multiplicao.
Descrio: Esta instruo executa a operao de multiplicao dos valores dos inteiros sem sinal
armazenados no Acumulador e registrador B. O byte menos significativo do produto de 16 bits ser
armazenado no acumulador e o byte mais significativo do produto ser armazenado no registrador B.
Se o produto for maior que 255 (0FFH) o OV ser alterado. O carry-flag ser sempre zero.
Modo de Endereamento: Nenhum.
Fluxo:
1. Multiplica A por B e coloca o byte menos significativo do produto em A e o mais
significativo em B.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 33/97
Fnix Project
Variaes:
MUL AB
Bytes: 1
Ciclos: 4
Opcode: 10100100 (xA4)
Operao: (A)7-0 (A) x (B)
(B)15-8
3.1.7
DIV AB
Funo: Diviso.
Descrio: Esta instruo executa a operao de diviso do inteiro sem sinal de 8 bits armazenado no
Acumulador pelo inteiro sem sinal de 8 bits armazenado no registrador B. O acumulador recebe a
parte inteira do quociente e o registrador B recebe o inteiro que representa o resto. Os flags carry e OV
devem ser modificados para zero.
Exceo: Se o registrador B contm 00H, os valores retornados para o acumulador e para o registrador
B sero indefinidos e o flag Overflow ser modificado. O carry flag ser igual a zero em qualquer dos
casos.
Modo de Endereamento: Nenhum.
Fluxo:
1. Divide A por B e coloca o quociente em A e o resto em B.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 34/97
Fnix Project
Variaes:
DIV AB
Bytes: 1
Ciclos: 4
Opcode: 10000100 (x84)
Operao: (A)15-8 (A)/(B)
(B)7-0
3.1.8
DA A
fenix_especificao_8051_CPU.d
oc
Pg 35/97
Fnix Project
Se o carry-flag est alterado, ou se os quatro bits mais significativos excedem o nmero nove, esses
quatro bits mais significativos sero incrementados de seis, produzindo um dgito BCD no nibble mais
significativo. O carry flag poder ser alterado se houver carry out da soma com os bits mais
significativos, caso contrrio o carry no dever ser modificado para 1 (um). O carry flag indicar se a
soma das variveis BCD maior que 100. OV no ser alterado.
Essa instruo executa a converso decimal pela adio de 00H, 06H, 60H ou 66H ao contedo do
acumulador, dependendo das condies iniciais do acumulador e do PSW.
Modo de Endereamento: Nenhum.
Fluxo:
1. Se o nibble menos significativo for maior que nove ou o carry flag auxiliar for 1, ento
some 6 ao nibble menos significativo e coloca o resultado neste nibble;
2. Se o nibble mais significativo for maior que nove ou o carry flag for 1, ento some 6 ao
nibble mais significativo e coloca o resultado neste nibble;
3. Afeta o carry flag.
Variaes:
DA A
Bytes: 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 36/97
Fnix Project
Ciclos: 1
Opcode: 11010100 (xD4)
Operao: IF[[(A3-0) > 9] [(AC) =
1]]
THEN(A3-0) (A3-0) +
6
AND
IF[[(A7-4) > 9] [C = 1]]
THEN(A7-4) (A7-4) +
6
3.2
Instrues Lgicas
Neste grupo esto as instrues de ANL (e lgico entre dois operandos), ORL (ou lgico de dois
operandos), XRL (ou exclusivo de dois operandos), CLR (limpa Acumulador), CPL (complemento
lgico do acumulador), RL (rotao para a esquerda), RLC (rotao para a esquerda com carry flag),
RR (rotao para a direita), RRC (rotao para a direita com carry flag) e SWAP (troca os nibbles do
acumulador).
3.2.1
ANL A, operando
Fluxo:
1. Busca operando;
2. Executa o e lgico e coloca o resultado no Acumulador;
3. No afeta nenhum flag.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 37/97
Fnix Project
Variaes:
ANL A, Rn
ANL A, Direto
ANL A, @Ri
Bytes: 1
Bytes: 2
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
(A)
ANL A, #dado
Bytes: 2
Ciclos: 1
Opcode: 01010100 (x54)
Operao: (A) (A) (#dado)
3.2.2
fenix_especificao_8051_CPU.d
oc
Pg 38/97
Fnix Project
Fluxo:
1. Busca operando;
2. Executa e lgico e coloca o resultado no endereo direto;
3. No afeta nenhum flag.
Variaes:
ANL direto, A
Bytes: 2
Bytes: 3
Ciclos: 1
Ciclos: 2
3.2.3
(direto)
(direto)
ORL A, operando
fenix_especificao_8051_CPU.d
oc
Pg 39/97
Fnix Project
Variaes:
ORL A, Rn
ORL A, direto
ORL A, @Ri
Bytes: 1
Bytes: 2
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
(A)
ORL A, #dado
Bytes: 2
Ciclos: 1
Opcode: 01000100 (x44)
Operao: (A) (A) (#dado)
3.2.4
fenix_especificao_8051_CPU.d
oc
Pg 40/97
Fnix Project
instruo e o operando, armazenando o resultado no endereo passado. Nesta instruo nenhum flag
alterado.
Obs.: Quando esta instruo usada para modificar uma porta de sada, o valor usado como origem
deve ser lido do latch e no dos pinos de entrada.
Modo de Endereamento: Acumulador e dado imediato.
Fluxo:
1. Busca operando;
2. Executa ou lgico e coloca o resultado no endereo direto;
3. No afeta nenhum flag.
Variaes:
ORL direto, A
Bytes: 2
Bytes: 3
Ciclos: 1
Ciclos: 2
Operao:(direto)(direto) Operao:(direto)(direto)
(A)
(#dado)
3.2.5
XRL A, operando
fenix_especificao_8051_CPU.d
oc
Pg 41/97
Fnix Project
Variaes:
XRL A, Rn
XRL A, Direto
XRL A, @Ri
Bytes: 1
Bytes: 2
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
(A)
(A)
XRL A, #dado
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 42/97
Fnix Project
Bytes: 2
Ciclos: 1
Opcode: 01100100 (x64)
Operao: (A) (A) (#dado)
3.2.6
Variaes:
XRL direto, A
Bytes: 2
Bytes: 3
Ciclos: 1
Ciclos: 2
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 43/97
Fnix Project
Operao:
(direto)(direto)(A)
3.2.7
Operao: (direto)(direto)
(#dado)
CLR A
Variaes:
CRL A
Bytes: 1
Ciclos: 1
Opcode: 11100100 (xE4)
Operao: (A) 0
3.2.8
CPL A
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 44/97
Fnix Project
Variaes:
CPL A
Bytes: 1
Ciclos: 1
Opcode: 11110100 (xF4)
Operao: (A) (A)
3.2.9
RL A
fenix_especificao_8051_CPU.d
oc
Pg 45/97
Fnix Project
Variaes:
RL A
Bytes: 1
Ciclos: 1
Opcode: 00100011 (x23)
Operao: (An+1) (An),
n = 0 6,
(A0) (A7)
3.2.10 RLC A
fenix_especificao_8051_CPU.d
oc
Pg 46/97
Fnix Project
Variaes:
RLC A
Bytes: 1
Ciclos: 1
Opcode: 00110011 (x33)
Operao: (An+1) (An),
n = 0 6,
(A0) C,
C (A7)
3.2.11 RR A
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 47/97
Fnix Project
Variaes:
RL A
Bytes: 1
Ciclos: 1
Opcode: 00000011 (x3)
Operao: (An) (An+1),
n = 0 6,
(A7) (A0)
3.2.12 RRC A
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 48/97
Fnix Project
Variaes:
RLC A
Bytes: 1
Ciclos: 1
Opcode: 00010011 (x13)
Operao: (An) (An+1),
n = 0 6,
(A7) C,
C (A0)
3.2.13 SWAP A
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 49/97
Fnix Project
Variaes:
SWAP A
Bytes: 1
Ciclos: 1
Opcode: 11000100 (xC4)
Operao: (A3-0) (A7-4) e
(A7-4) (A3-0)
3.3
3.3.1
MOV A, operando
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 50/97
Fnix Project
B usca de
O perando
Initial
C opia dado do
operando para o
A cum ulador
E1
t1
E2
t1
Final1
Variaes:
MOV A, Rn
MOV A, @Ri
MOV A, #dado
Bytes: 1
Bytes: 1
Bytes: 2
Ciclos: 1
Ciclos: 1
Ciclos: 1
Opcode:01110100
(x74)
Operao: (A) #dado
MOV A, direto
Bytes: 2
Ciclos: 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 51/97
Fnix Project
3.3.2
B usca de
O perando
Initial
C opia dado do
operando para o
R egistrador
E1
t1
E2
t1
Final1
Variaes:
MOV Rn, A
Byte: 1
Bytes: 2
Byte: 1
Ciclo: 1
Ciclos: 2
Ciclo: 1
fenix_especificao_8051_CPU.d
oc
Pg 52/97
Fnix Project
3.3.3
dado
Fluxo:
1. Busca de operando;
2. Copia o dado do operando para o endereo de memria indicado, sem alterar o dado
original;
3. No afeta nenhuma flag.
B usca de
O perando
Initial
C opia dado do
operando para o
E ndereo de m em ria
especificado
E1
t1
E2
t1
Final1
Variaes:
MOV direto, A
MOV direto, Rn
Bytes: 2
Bytes: 2
Bytes: 3
Ciclos: 1
Ciclos: 2
Ciclos: 2
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 53/97
Fnix Project
Bytes: 2
Bytes: 3
Ciclos: 2
Ciclos: 2
3.3.4
Funo: copia o dado do operando para o endereo de memria indicado pelo registrador.
Modos de Endereamento: acumulador, endereamento direto, dado imediato.
Fluxo:
1. Busca de operando;
2. Copia o dado do operando para o endereo de memria indicado pelo registrador, sem
alterar o dado original;
3. No afeta nenhuma flag.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 54/97
Fnix Project
B usca de
O perando
C opia dado do
operando para o
E ndereo de m em ria
especificado pelo
registrador
E1
Initial
E2
t1
t1
Final1
Variaes:
MOV @Ri, A
Bytes: 1
Bytes: 2
Bytes: 2
Ciclos: 1
Ciclos: 2
Ciclos: 1
3.3.5
B usca de
O perando
Initial
Executar Instruo
E1
t1
E2
t1
Final1
fenix_especificao_8051_CPU.d
oc
Pg 55/97
Fnix Project
Variao:
MOV DPTR, #dado16
Bytes: 3
Ciclos: 2
Opcode: 10010000 (x90)
Operao: (DPTR) (#dado(15-0))
DPH
0)
3.3.6
DPL #dado(15-8)
#dado(7-
MOVC A, @A+operando
Busca de
O perando
Initial
Executar Instruo
E1
Som a o
operando com o
Acum ulador
t1
E2
Busca do byte
code,ou
contante da
m em ria
t1
E3
C opia o dado n
o acum ulador
t1
E4
t1
Final1
fenix_especificao_8051_CPU.d
oc
Pg 56/97
Fnix Project
Variaes:
MOVC A, @A + DPTR
MOVC A, @A + PC
Bytes: 1
Bytes: 1
Ciclos: 2
Ciclos: 2
3.3.7
(A)
((A)
MOVX A, @operando
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 57/97
Fnix Project
B usca de
O perando
C opia dado do
endereo da R A M
externa fornecido pel
o operando no
A cum ulador
E1
Initial
E2
t1
t1
Final1
Variaes:
MOVX A, @Ri
MOVX A, @DPTR
Bytes: 1
Bytes: 1
Ciclos: 2
Ciclos: 2
3.3.8
MOVX @operando, A
B usca de
O perando
Initial
Executar Instruo
E1
C opia dado do
A cum uladorem um
endereo da R A M
externa
t1
E2
t1
Final1
fenix_especificao_8051_CPU.d
oc
Pg 58/97
Fnix Project
Variaes:
MOVX @Ri, A
MOVX @DPTR, A
Bytes: 1
Bytes: 1
Ciclos: 2
Ciclos: 2
3.3.9
PUSH operando
C opia o dado do
operando para o
endereo da R A M
interna indicado
pelo S tack P ointer
Increm enta em 1
o S tack P ointer
Initial
E1
t1
E2
t1
Final1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 59/97
Fnix Project
Variao:
PUSH direto
Bytes: 2
Ciclos: 2
Opcode: 11000000 (xC0)
Operao: (SP) (SP) + 1
((SP)) (direto)
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 60/97
Fnix Project
Initial
E1
D ecrem enta m e
1 o S tack
t1
E2
t1
Final1
Variao:
POP direto
Bytes: 2
Ciclos: 2
Opcode:10001rrr (xD0)
Operao: (direto) (SP)
(SP) (SP) - 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 61/97
Fnix Project
C opia o dado do
acum uladorno endereo
do operando e o dado do
operando no acum ulador
B usca de
O perando
Initial
S1
t1
S2
t1
Final1
Variaes:
XCH A, Rn
XCH A, direto
XCH A, @Ri
Bytes: 1
Bytes: 2
Bytes: 1
Ciclos: 1
Ciclos: 1
Ciclos: 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 62/97
Fnix Project
B usca de
O perando
Initial
S1
t1
S2
t1
Final1
Variaes:
XCHD A, @Ri
Bytes: 1
Ciclos: 1
Opcode: 1101011i (xD6 -> xD7)
Operao: (A(3-0)) (Ri(3-0))
3.4
Neste grupo esto as instrues CLR (Reseta bit) e CPL (Complementa bit), SETB (Seta bit),
ANL(AND lgico de bit), ORL(OR lgico de bit), MOV(Move bit Estas foram agrupadas, pois todas
manipulam bit. A seguir sero detalhados seus comportamentos e variaes.
3.4.1
CLR operando
fenix_especificao_8051_CPU.d
oc
Pg 63/97
Fnix Project
Variaes:
CLR C
CLR bit
Bytes: 1
Bytes: 2
Ciclos: 1
Ciclos: 1
Opcode : 11000011
Operao: (C) 0
3.4.2
SETB operando
fenix_especificao_8051_CPU.d
oc
Pg 64/97
Fnix Project
Variaes:
SETB C
Bytes: 1
Ciclos: 1
Opcode : 11010011
Operao: (C) 1
3.4.3
CPL operando
fenix_especificao_8051_CPU.d
oc
Pg 65/97
Fnix Project
Obs: Quando essa instruo for usada para modificar uma porta de sada, o valor original da porta ser
lido a partir do latch de sada e no dos pinos de entrada.
Modos de Endereamento: Endereamento direto de bit.
Fluxo:
1. Busca de operando;
2. O operando endereado setado para o valor complementar;
3. No afeta nenhum flag alm do carry flag;
Variaes:
CPL C
CPL bit
Bytes: 1
Bytes: 2
Ciclos: 1
Ciclos: 1
Opcode : 10110011
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 66/97
Fnix Project
3.4.4
ANL C, operando
Variaes:
ANL C,bit
ANL C,/bit
Bytes: 2
Bytes: 2
Ciclos: 2
Ciclos: 2
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 67/97
Fnix Project
3.4.5
ORL C, operando
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 68/97
Fnix Project
Variaes:
ORL C,bit
ORL C,/bit
Bytes: 2
Bytes: 2
Ciclos: 2
Ciclos: 2
3.4.6
MOV C, bit
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 69/97
Fnix Project
Variaes:
MOV C,bit
Bytes: 2
Ciclos: 1
Opcode : 10100010 [endereo do
bit] Operao: (C) (bit)
3.4.7
MOV bit, C
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 70/97
Fnix Project
Variaes:
MOV bit,C
Bytes: 2
Ciclos: 1
Opcode : 10010010 [endereo do
bit] Operao: (bit) (C)
3.5
Instrues de desvio
Neste grupo esto as instrues JC, JNC, JB, JNB, JBC, ACALL, LCALL, RET, RETI, JMP, LJMP,
SJMP, JMP, JZ, JNZ, CJNE, DJNZ, NOP, que so instrues que executam desvio. A seguir sero
detalhados seus comportamentos e variaes.
3.5.1
JC rel
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 71/97
Fnix Project
Variaes:
JC
Bytes: 2
Ciclos: 2
Opcode:
relativo]
01000000
[endereo
3.5.2
JNC rel
fenix_especificao_8051_CPU.d
oc
Pg 72/97
Fnix Project
Variaes:
JNC
Bytes: 2
Ciclos: 2
Opcode: 01010000 [endereo relativo]
Operao: (PC) (PC) + 2
IF(C) = 0
THEN
(PC) (PC) + rel
3.5.3
JB bit, rel
fenix_especificao_8051_CPU.d
oc
Pg 73/97
Fnix Project
Variaes:
JB bit, rel
Bytes: 3
Ciclos: 2
Opcode: 00100000
[endereo relativo]
[endereo
do
bit]
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 74/97
Fnix Project
3.5.4
Variaes:
JNB <bit>,rel
Bytes: 3
Ciclos: 2
Opcode: 00110000 [endereo do bit] [endereo
relativo]
Operao: (PC) (PC) + 3
IF(bit) = 0
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 75/97
Fnix Project
THEN
(PC) (PC) + rel
3.5.5
JBC bit,rel
Variaes:
JBC <bit>,rel
Bytes: 3
Ciclos: 2
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 76/97
Fnix Project
Opcode: 00010000
[endereo relativo]
[endereo
do
bit]
3.5.6
ACALL addr11
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 77/97
Fnix Project
Variaes:
ACALL addr11
Bytes: 2
Ciclos: 2
Opcode: a10 a9 a8 10001 a7 a6 a5 a4 a3 a2 a1 a0
Operao: (PC) (PC) + 2
(SP) (SP) + 1
(SP) (PC7-0)
(SP) (SP) + 1
(SP) (PC15-8)
(PC10-0) endereo da pgina
3.5.7
LCALL addr16
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 78/97
Fnix Project
Variaes:
LCALL addr16
Bytes: 3
Ciclos: 2
Opcode: 00010010 [addr15-addr8] [addr7-addr0]
Operao: (PC) (PC) + 3
(SP) (SP) + 1
(SP) (PC7-0)
(SP) (SP) + 1
(SP) (PC15-8)
(PC) addr15-0
3.5.8
RET
fenix_especificao_8051_CPU.d
oc
Pg 79/97
Fnix Project
Variaes:
RET
Bytes: 1
Ciclos: 2
Opcode: 00100010
Operao: (PC15-8) ((SP))
(SP) (SP) 1
(PC7-0) ((SP))
(SP) (SP) 1
3.5.9
RETI
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 80/97
Fnix Project
mesma prioridade foi requisitada quando a instruo RETI estava sendo executada, essas sero
executadas depois que a interrupo pendente for executada.
Modos de Endereamento: Endereo calculado na execuo da instruo.
Fluxo:
1. Busca de operando;
2. Calculo do endereo de retorno da interrupo e armazenamento em PC;
3. No afeta nenhum flag;
Variaes:
RETI
Bytes: 1
Ciclos: 2
Opcode: 00110010
Operao: (PC15-8) ((SP))
(SP) (SP) 1
(PC7-0) ((SP))
(SP) (SP) 1
fenix_especificao_8051_CPU.d
oc
Pg 81/97
Fnix Project
Descrio: AJMP transfere a execuo do programa para o endereo indicado, o qual formado em
tempo de execuo pela concatenao dos 5 bits mais significativos do PC (aps ele ter sido
incrementado duas vezes), opcode bits 7-5, e o segundo byte da instruo. O endereo de destino deve
ser dentro do mesmo 2K bloco de espao de memria de programa que o primeiro byte da instruo
que sucede AJMP.
Modos de Endereamento: Endereo calculado na execuo da instruo.
Fluxo:
1. Busca de operando;
2. Calculo do endereo de desvio e armazenamento em PC;
3. No afeta nenhum flag;
Diagrama de Execuo da Instruo AJMP addr11
Variaes:
AJMP addr11
Byte: 2
Ciclos: 2
Opcode: a10 a9 a8 00001 a7 a6 a5 a4 a3 a2 a1 a0
Operao: (PC) (PC) + 2
(PC10-0) endereo da pgina
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 82/97
Fnix Project
Variaes:
LJMP add16
Bytes: 3
Ciclos: 2
Opcode: 00000010 [add15-addr8] [addr7-addr0]
Operao: (PC) addr15-0
fenix_especificao_8051_CPU.d
oc
Pg 83/97
Fnix Project
ao PC j incrementado duas vezes. O alcance de desvio permitido de 128 bytes precedendo essa
instruo e 127 bytes sucedendo.
Modos de Endereamento: Endereo calculado na execuo da instruo.
Fluxo:
1. Busca de operando;
2. Calculo do endereo de desvio e armazenamento em PC;
3. No afeta nenhum flag;
Variaes:
SJMP rel
Bytes : 2
Ciclos: 2
Opcode: 10000000 [endereo relativo]
Operao: (PC) (PC) + 2
(PC) (PC) + rel
fenix_especificao_8051_CPU.d
oc
Pg 84/97
Fnix Project
Variaes:
JMP @A+DPTR
Bytes: 1
Ciclos: 2
Opcode: 01110011
Operao: (PC) (A) + (DPTR)
3.5.14 JZ rel
fenix_especificao_8051_CPU.d
oc
Pg 85/97
Fnix Project
Fluxo secundrio:
1. No item 2 do fluxo principal, se a condio de desvio no for satisfeita, segue a busca
da prxima instruo;
Variaes:
JZ
Bytes: 2
Ciclos: 2
Opcode: 01100000 [endereo relativo]
Operao: (PC) (PC) + 2
IF A = 0
THEN (PC) (PC) + rel
fenix_especificao_8051_CPU.d
oc
Pg 86/97
Fnix Project
Fluxo:
1. Busca de operando;
2. Desvia para o endereo relativo caso a condio de desvio seja satisfeita;
3. No afeta nenhum flag;
Fluxo secundrio:
1. No item 2 do fluxo principal, se a condio de desvio no for satisfeita, segue a busca
da prxima instruo;
Diagrama de Execuo da Instruo JNZ rel
Variaes:
JNZ
Bytes: 2
Ciclos: 2
Opcode: 01110000 [endereo relativo]
Operao: (PC) (PC) + 2
IF A != 0
THEN (PC) (PC) + rel
fenix_especificao_8051_CPU.d
oc
Pg 87/97
Fnix Project
Variaes:
CJNE A,direto,rel
CJNE A,#dado,rel
Bytes: 3
Bytes: 3
Ciclos: 2
Ciclos: 2
IF(A) != (direto)
IF(A) != dado
THEN
THEN
THEN
THEN
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 88/97
Fnix Project
(C) 1
(C) 1
ELSE
ELSE
(C) 0
(C) 0
Fluxo:
1. Busca de operando;
2. Compara operandos.
3. Desvia para o endereo calculado se os operandos forem diferentes;
4. No afeta nenhum outro flag alm do carry flag, caso o contedo de Rn seja menor
que o valor do operando, desconsiderando o sinal;
Fluxo secundrio:
1. No item 2 do fluxo principal, se a condio de desvio no for satisfeita, segue a busca
da prxima instruo;
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 89/97
Fnix Project
Variaes:
CJNE Rn, dado, rel
Bytes: 3
Ciclos: 2
Opcode: 10111rrr [dado imediato] [rel. offset]
Operao: (PC) (PC) + 3
IF(Rn) != dado
THEN
(PC) (PC) + relative offset
IF (Rn) < dado
THEN
(C) 1
ELSE
(C) 0
fenix_especificao_8051_CPU.d
oc
Pg 90/97
Fnix Project
Fluxo:
1. Busca de operando;
2. Compara operandos.
3. Desvia para o endereo calculado se os operandos forem diferentes;
4. No afeta nenhum outro flag alm do carry flag, caso o contedo de @Ri seja menor
que o valor do operando, desconsiderando o sinal;
Fluxo secundrio:
1. No item 2 do fluxo principal, se a condio de desvio no for satisfeita, segue a busca
da prxima instruo;
Variaes:
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 91/97
Fnix Project
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 92/97
Fnix Project
Variaes:
DNJZ Rn, rel
Bytes: 2
Ciclos: 2
Opcode : 11011rrr [endereo relativo]
Operao: (PC) (PC) + 2
(Rn) (Rn) 1
IF(Rn) > 0 or (Rn) < 0
THEN
(PC) (PC) + rel
fenix_especificao_8051_CPU.d
oc
Pg 93/97
Fnix Project
O destino do salto ser computado adicionando o valor do ltimo byte (levando-se em considerao o
sinal) da instruo ao PC j incrementado, ou seja, o PC j estar apontando para o primeiro byte da
prxima instruo.
Nota: Quando essa instruo for usada para modificar uma porta de sada, o valor original da porta
ser lido a partir do latch de sada e no dos pinos de entrada.
Modos de Endereamento: Endereamento relativo e endereamento direto.
Fluxo:
1. Busca de operando;
2. Decrementa o operando e o compara com zero.
3. Desvia para o endereo calculado se o operando for diferente de zero;
4. No afeta nenhum outro flag;
Fluxo secundrio:
1. No item 2 do fluxo principal, se a condio de desvio no for satisfeita, segue a busca
da prxima instruo;
Variaes:
DNJZ direto, rel
Bytes: 3
Ciclos: 2
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 94/97
Fnix Project
3.5.21 NOP
N o Faz nada
Initial
S1
t1
Final1
Variaes:
NOP
Bytes: 1
Ciclos: 1
Opcode: 00000000
Operao: (PC) (PC) + 1
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 95/97
Fnix Project
4. Referncias
[1] Documento de Requisitos; BrazilIP_Requisitos_8051.doc.
[2] Modelo de Casos de Uso; <Excutar_Instruo.rtmdl>;
[3] 80C51 family programmers guide and instruction set, Philips Semicondutores.
Executar Instruo
fenix_especificao_8051_CPU.d
oc
Pg 96/97
Executar Instruo
Fnix Project
fenix_especificao_8051_CPU.d
oc
Pg 97/97