Question

J'ai le code asm suivant:

    org $1000             ;Table Origin is at $1000
fcb $02,$04,$06,$08   ; values of table from $1001 - $1004
fcb <*>a,<*>c,<*>e,$10   ; values of table from $1005 - $1009


        org $400          ; Program Start
        lds #$4000        ; Set Stack Pointer at value (#) $4000
        ldy #$1000        ; Set Index Y at $1000
        ldaa #$04         ; Load Accumulator a with value $04
loop    staa $20,y        ; Store value of Accumulator a at y = $1000 {DOESNT WORK} 
        staa $21,y        ; Store value of Accumulator a at y = $1021 {DOESNT WORK}
        iny               ; increment y (at this point $1020 and $1021 are still ff)
        iny               ; increment y (at this point $1020 and $1021 are still ff)
        deca              ; decrement a
        bne loop          ; loop until a = 0
hold    bra hold          ; end of program
        end

La table est correctement définie, mais le staa n’écrit rien à 1020. Pourquoi?

Était-ce utile?

La solution

Je crois qu'il y a une ROM là-bas

  

10.3 matrice de ROM

     

La mémoire ROM est constituée d’un tableau de 28 000 octets mappé de 1 000 $ à 7FFF et   d’une matrice de 32 Ko octets mappés de 8 000 $ à $ FFFF lors de la réinitialisation. le   Le bit MAPROM dans le registre MISC permet l’échange des deux tableaux.   ROMON28 et ROMON32 activent ou désactivent le module ROM

Extrait du M68HC12, fiche technique

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top