Como usar DB e MOVC A, @A+DPTR ?

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Como usar DB e MOVC A, @A+DPTR ?

Mensagempor Renato Nogueira » 29 Dez 2009 20:01

Ainda não consegui entender direito essa instrução e nem a diretiva DB.

Pelo o que entendi essa parte da instrução @A+DPTR, significa que no DPTR está o endereço da tabela na memória de programa e no A está o endereço do byte da tabela que eu quero MOVER para o A. Sei também que esta tabela fica entre a última instrução e o END.

Mas ainda não entendi algumas coisas como por exemplo MOV A, #tabela; Como pode isso? Vi isso num exemplo, mas acho que antes o programador usou a diretiva EQU para igualar TABELA EQU XXh(endereço da tabela). Certo???

Eu preciso saber disso pois preciso guardar o valor de 60s numa tabela.

Mas ainda não decidi se faço isso com memória de programa ou memória e2prom interna(89s8253).

Alguém poderia me dar um exemplo. Pode ser bem simples mesmo, de algumas linhas.

Abraço!
Renato Nogueira
Bit
 
Mensagens: 36
Registrado em: 13 Dez 2006 15:39

Mensagempor Djalma Toledo Rodrigues » 30 Dez 2009 09:08

DB ----> Data Byte

DW ----> Data Word

Da Tabela:

Pode estar em qualquer posição da Memóriia, geralmente esta após o final do programa.
Se estiver inserida no programa é claro que haverá um Jump.

DPTR ----> Data Pointer 16 Bits localizado no Endereço 82H DPL e 83H DPH do SFR

É uma boa prática colocar na primeira posição da Tabela o seu comprimento, para delimitar a leitura.

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor tcpipchip » 31 Dez 2009 09:40

MOV A, #tabela;

Neste caso, o ponteiro para tabela é de 256 posiçoes...

O montador traduz o endereço da tabela para ti...

depois use @A
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!


Voltar para 8051

Quem está online

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

x