.define exg
.sect .text
.sect .rom
.sect .data
.sect .bss
!size (bytes) in R0
exg:
ldm savereg, R4, $10
ldl RR2, RR14
inc R3, $2
ldl RR4, RR2
add R5, R0
sra R0
1: ld R1, *RR2
ex R1, *RR4
ld *RR4, R1
inc R5, $2
djnz R0, 1b
ldm R4, savereg, $10
ret