Página 1 de 1

Erro na compilação

MensagemEnviado: 05 Mar 2009 17:59
por reginaldo
Pessoal, meu programa rodava normalmente, quando inseri + duas linhas de codigo , apareceu o seguinte erro:

Error[118] C:\teste\CONT.ASM 4864 : Overwriting previous address contents (0800)

alguém pode me ajudar? O que isso quer dizer?

MensagemEnviado: 05 Mar 2009 18:50
por kaoalex
reginaldo,
Eu não sei assembler, mas faz uma busca no google com a sentença abaixo:

Error[118] Overwriting previous address contents

Ele retorna um monte de soluções. Boa sorte.

MensagemEnviado: 06 Mar 2009 08:47
por DEJANO
Ola Pessoal!!!
Ola Reginaldo!!
Provavelmente voce esta ultrapassando a capacidade da memoria de programa do seu Circuito.
Vai la em view e verifique o programa na memoria e ve quanto que ele esta ocupando. compare com o tamanho da memoria da sua cpu. Caso estiver sem memoria, tente otmizar os seus codigo para ocupar menos memoria e sobrar alguns bytes para voce inserir essas duas linhas.
Até mais
Dejano

MensagemEnviado: 06 Mar 2009 10:24
por Sergio38br
bom dia, vc esta usando alguma diretiva para que ele compile após o endereço 0x800 ( ta me cheirando a bootloader) e esta faltando a diretiva org 0x800 no inicio de seu código( main.. )

[ ]'s
Sergio

MensagemEnviado: 06 Mar 2009 12:10
por reginaldo
Pessoal obrigado pela atenção,

Estou usando um pic 16f877a, e ao ver o Prgram memory, a pagina 0 da flash está cheia, só que preciso fazer uma chamada de subrotina na pagina 0, sendo que a subrotina em questão está na pagina 2, como fazer isso?, se há um jeito!

Por enquanto Obrigado!

MensagemEnviado: 06 Mar 2009 13:06
por proex
LCALL "NOME DA ROTINA NA PAGINA 2"

MensagemEnviado: 06 Mar 2009 17:22
por reginaldo
Só mais uma pergunta, se eu estiver em uma pagina e quiser ler uma variavel que está em outra pagina, tenho que acertar o banco também?

obrigado!

MensagemEnviado: 06 Mar 2009 21:01
por proex
Sim, precisa acertar o banco de registradores.

Use a instrução BANKSEL.

Exermplo:
RegA esta no banco 0;
RegB esta no banco 3;

Se precisar mover RegB para RegA, faça assim:

BANKSEL RegB
MOVF RegB,W
BANKSEL RegA
MOVWF RegA

Pronto.