dúvida com endereçamento!

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

dúvida com endereçamento!

Mensagempor B-EAGLE » 16 Abr 2007 19:57

Estou precisando saltar, a partir de uma determinada linha do meu programa, X linhas, este X eu vou carregá-lo com uma variável, R0, R1, etc.
Tem como?

Desde já agradeço.
Bruno
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Mensagempor brasilma » 16 Abr 2007 21:40

Veja se JMP @A+DPTR te ajuda.

Abraços,
MArcos.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor Maurício » 16 Abr 2007 23:02

Tb não dá pra botar um label e mandar saltar??

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor B-EAGLE » 17 Abr 2007 17:35

para saltar com label eu vou precisar ficar verificando a variável, e a própria verificação vai variar no seu tempo, necessito de precisão... a não ser que eu não tenha pensado da maneira correta Maurício...


brasilma, eu vi esta instrução mas não entendi muito bem não, porque o DPTR é endereçamento da rom externa, ou não? eu não teria que pegar o valor do PC e adicionar o valor de linhas que eu quero saltar?


muito obrigado!
abraços!
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Mensagempor Maurício » 17 Abr 2007 22:50

É que mexer com fluxo de programa sem haver um alvo específico é coisa chata e perigosa, hein ?
Cuidado aí!

Não tem que mexer com o PC e com o stack ?
Eu nunca ví instrução no 51 que dá saltos no código da forma que vc pretende fazer.

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor B-EAGLE » 27 Abr 2007 02:14

dá pra fazer sim Maurício, é com o DPTR mesmo, como o brasilma falou,

por exemplo,

;vamos supor que aqui voce queira dar um pulo de acordo com o valor em R1:
MOV DPTR,#2FE
MOV A,R1
JMP @A+DPTR

ORG 0x2FE
nop
nop
nop
nop
AJMP label


de acordo com o valor de R1, seu programa executará mais ou menos NOP's..

abraços!
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Mensagempor barboza » 27 Abr 2007 16:24

switch (R1)
{
case 0x00:
break;

case 0x01:
break;

....

case 0xFF:
break;
}

em asm!
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x