Página 1 de 1
dúvida com endereçamento!

Enviado:
16 Abr 2007 19:57
por B-EAGLE
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

Enviado:
16 Abr 2007 21:40
por brasilma
Veja se JMP @A+DPTR te ajuda.
Abraços,
MArcos.

Enviado:
16 Abr 2007 23:02
por Maurício
Tb não dá pra botar um label e mandar saltar??
[]'s
RETI.

Enviado:
17 Abr 2007 17:35
por B-EAGLE
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!

Enviado:
17 Abr 2007 22:50
por Maurício
É 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.

Enviado:
27 Abr 2007 02:14
por B-EAGLE
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!

Enviado:
27 Abr 2007 16:24
por barboza
switch (R1)
{
case 0x00:
break;
case 0x01:
break;
....
case 0xFF:
break;
}
em asm!