GoAmiga > Jag läser ner värdet i INDF, men sedan när jag läser ur INDF (direkt i nästa steg) så får jag endast ut 00h när jag flyttat värdet från RECIVEKB till RECIVEKB_B via INDF.
Om du inte använder MPSIM hur vet du då att du får 00h när du läser från INDF? Har du någon display ansluten?
Om du inte får ut det du skriver in är det möjligt att du inte skriver in det du tror, eller att du inte läser från samma ställe där du skriver. Antar att du inte använder någe interrupt som rotar runt i FSR?
De fyra rader du strippat ner problemet till kan knappast vara felet, du letar antagligen på fel ställe.
Du använder väl movlw när du laddar addressen dit du skall skriva och läsa och inte movfw eller movf ADDRESS,w?
Indirekt adressering.
För att ladda (den "indirekta") adressen (i FSR) kan antingenelleranvändas.
Det beror på om värdet är givet vid "assembly time" (symbol) eller
om det är dynamiskt vid "run time" (register).
Notera också att man alltid får h'00 om man läser INDF i sig självt,
d.v.s om man har h'00' i FSR...
Kod: Markera allt
MOVLW <symbol/constant>
MOVWF FSR
Kod: Markera allt
MOWF <reg>, W
MOVWF FSR
Det beror på om värdet är givet vid "assembly time" (symbol) eller
om det är dynamiskt vid "run time" (register).
Notera också att man alltid får h'00 om man läser INDF i sig självt,
d.v.s om man har h'00' i FSR...