STACKSIZE EQU 0x100
SLOPE EQU 5
OFFSET EQU 10
ARRAYSIZE EQU 4

	AREA STACK, NOINIT, READWRITE, ALIGN=3 
StackMem 
	SPACE STACKSIZE

	AREA RESET, DATA, READONLY 
	EXPORT __Vectors

__Vectors
	DCD StackMem + STACKSIZE ; stack pointer when atad t i t  
	DCD  Reset_Handler  ; reset factor
	ALIGN

	AREA MyDSTdata, DATA, READWRITE
dst_data DCW 0,0,0,0

	AREA MySRCdata, DATA, READONLY
src_data DCW 1,2,3,4

	AREA |.text|, CODE, READONLY, ALIGN=2
	ENTRY
	EXPORT Reset_Handler

Reset_Handler
	MOV r2, #ARRAYSIZE 
	MOV r3, #OFFSET 
	MOV r4, #SLOPE 
	LDR r5, src_data 
	LDR r6, dst_data

Loop
	LDRH r0, [r5], #2 
	MLA r0, r0, r4, r3 
	STRH  r0, [r6], #2 
	SUBS r2, r2, #1 
	BNE Loop

Loop_Forever
	B Loop_Forever


  END