Pic18 e banchi ram

Salve a tutti, con il pic18f452 ho terminato il primo banco di memoria (127 byte disponibili) e quindi sono costretto ad usare anche un'altro banco da 256 byte. Ho capito che per l'indirizzamento posso usare l'istruzione LBSR e poi gestirmi le chiamate con la "A" delle istruzioni ma il mio problema principale è questo: usando l'istruzione MOVFF in teoria il BSR è ignorato perchè l'indirizzamento dell'istruzione è già a 12 bit. In realtà questo non mi si verifica. Forse con un piccolo esempio mi spiego meglio:

movlb 1; seleziono banco1 movlw 100;e carico movwf gradi; nella variabile un valore a scelta movlw 0; porto a zero l'accumulatore per scrupolo

movff gradi,numero; sposto il valore di gradi nella variabile numero che è nel banco 0 call visuanumero; e visualizzo il contenuto di "numero"

a questo punto il valore di "numero" è 1 mentro mi aspettavo 100. Se invece faccio

movf gradi,W movwf numero,A call visuanumero

allora in "numero" mi ritrovo il valore di partenza 100. Ma perchè devo passare per l'accumulatore? non dovrebbe essere diretto come da data sheet o mi sfugge qualcosa?

Gaetà

--


questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
gaetà
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.