Pourquoi la zone mémoire de 1020 $ est-elle non-lisible sur M68HC12 avec staa?
-
03-07-2019 - |
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?
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