2009-03-06 26 views
6

Tôi có đoạn code asm sau:

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 

Bảng này được thiết lập đúng nhưng staa viết gì ở năm 1020 trên. Tại sao?

+0

Upvote cho đi qua đầu tôi. :-) –

+0

có thể nếu tôi nhận xét chúng? – kthakore

+0

nó không thể làm tổn thương .... –

Trả lời

6

Tôi tin rằng có ROM có

10,3 ROM Mảng

ROM này được làm bằng một mảng 28k byte ánh xạ từ $ 1000 đến $ 7FFF và của một mảng 32 K byte ánh xạ từ $ 8000 đến $ FFFF khi đặt lại. bit MAPROM trong thanh ghi MISC cho phép trao đổi hai mảng. ROMON28 và ROMON32 bật hoặc tắt các module ROM

Từ M68HC12 datasheet

+0

Bạn nói đúng !!! Ngoại trừ Khu vực ROM là từ $ 1000 đến $ 2000. Cảm ơn bạn – kthakore