6

次の asm コードがあります。

    org $1000             ;Table Origin is at $1000
fcb $02,$04,$06,$08   ; values of table from $1001 - $1004
fcb $0a,$0c,$0e,$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 で何も書き込みません。なんで?

4

1 に答える 1

6

そこにROMがあると思います

10.3 ROM アレイ

ROM は、リセット時に $1000 から $7FFF にマップされた 28K バイト配列と、$8000 から $FFFF にマップされた 32K バイト配列で構成されます。MISC レジスタの MAPROM ビットを使用すると、2 つのアレイを交換できます。ROMON28 および ROMON32 は ROM モジュールを有効または無効にします

M68HC12データシートより

于 2009-03-06T20:37:25.113 に答える