Memory CopyΒΆ
Copies data from one memory location to another.
1; Memory copy: copy 6 bytes from RAM[0x60..0x65] to RAM[0x70..0x75]
2; Output: RAM[0x70..0x75] = copy of RAM[0x60..0x65]
3
4start:
5 ; store source data at RAM[0x60..0x65]
6 ldi r20, 0x60
7 ldi r21, 10
8 st r20, r21
9
10 ldi r20, 0x61
11 ldi r21, 20
12 st r20, r21
13
14 ldi r20, 0x62
15 ldi r21, 30
16 st r20, r21
17
18 ldi r20, 0x63
19 ldi r21, 40
20 st r20, r21
21
22 ldi r20, 0x64
23 ldi r21, 50
24 st r20, r21
25
26 ldi r20, 0x65
27 ldi r21, 60
28 st r20, r21
29
30 ; copy to destination
31 ldi r16, 0x60 ; src
32 ldi r17, 0x70 ; dst
33 ldi r18, 6 ; count
34
35copy_loop:
36 ld r19, r16 ; load from src
37 st r17, r19 ; store to dst
38
39 inc r16 ; next src
40 inc r17 ; next dst
41 dec r18 ; count--
42
43 cpi r18, 0
44 brne copy_loop
45
46done:
47 jmp done
Demonstrates memory-to-memory data transfer.