【问题标题】:Why is memory area $1020 unwriteable on M68HC12 with staa?为什么内存区 $1020 在 M68HC12 上无法写入 staa?
【发布时间】:2010-10-11 20:04:18
【问题描述】:

我有以下汇编代码:

    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 上没有写入任何内容。为什么?

【问题讨论】:

  • 赞成我的想法。 :-)
  • 如果我评论他们可以吗?

标签: assembly embedded memory-mapping


【解决方案1】:

我相信那里有 ROM

10.3 ROM 阵列

ROM 由一个 28K 字节数组组成,映射从 $1000 到 $7FFF 和 重置时从 $8000 映射到 $FFFF 的 32 K 字节数组。这 MISC 寄存器中的 MAPROM 位允许交换两个数组。 ROMON28 和 ROMON32 启用或禁用 ROM 模块

来自 M68HC12 datasheet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2011-11-09
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多