我有以下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 数据表

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top