为什么在带有staa的M68HC12上,内存区域1020美元是不可写的?
-
03-07-2019 - |
题
我有以下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
表格设置正确但是staa在1020上没有写任何内容。为什么?
解决方案
我相信那里有ROM
10.3 ROM阵列
ROM由一个28K字节的数组组成,映射范围从$ 1000到$ 7FFF 在重置时从$ 8000映射到$ FFFF的32 K字节数组。该 MISC寄存器中的MAPROM位允许交换两个阵列。 ROMON28和ROMON32启用或禁用ROM模块
来自M68HC12 数据表
不隶属于 StackOverflow