¿Por qué el área de memoria $ 1020 no se puede escribir en M68HC12 con staa?
-
03-07-2019 - |
Pregunta
Tengo el siguiente código ASM:
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 tabla está configurada correctamente pero la estación no escribe nada en 1020. ¿Por qué?
Solución
Creo que hay ROM allí
10.3 ROM Array
La ROM está hecha de una matriz de bytes de 28 K asignada de $ 1000 a $ 7FFF y de una matriz de bytes de 32 K asignada de $ 8000 a $ FFFF en el reinicio. los El bit MAPROM en el registro MISC permite el intercambio de las dos matrices. ROMON28 y ROMON32 habilitan o inhabilitan el módulo ROM
De la M68HC12 hoja de datos
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow