6502 – Eine 256 Byte großen Block kopieren
Dieses kleine Programm kopiert 256 Byte von einem Adressbereich in einen anderen Adressbereich. Es wird mit Zero-Page-Pointern gearbeitet.
/
; Kopiert 256 Bytes von $0200 nach $0300, clobbert A,X
; Zyklen: ~ (4 + 256*(6..7)) je nach Page-Crossing
.org $0801 ; Beispielstart (optional)
srcPtr = $fb ; Zero-Page-Word
dstPtr = $fd
lda #$00
sta srcPtr
lda #$02
sta srcPtr+1
lda #$00
sta dstPtr
lda #$03
sta dstPtr+1
ldx #$00
copyLp: lda (srcPtr),x ; 6 Zyklen (7 bei Page-Crossing)
sta (dstPtr),x ; 6 Zyklen (7 bei Page-Crossing)
inx
bne copyLp ; 2/3 Zyklen, 256 Iterationen
rts