reset: br >main
nop
hardfault: reti
nop
memfault: reti
nop

main: // actual start of program

clr r0
clr r1
clr r2
clr r3
clr r4

//test move = or
addi r0, 0x55		// expected r0 = 0x55
mov r1, r0			// expected r1 = 0x55

//test shift
addi r2, 0x0A		//expected r2 = 0x0A
lsh	r3, r2, 16		//expected r3 = 0xA_0000
lsh	r3, r3, 12		//expected r3 = 0xA000_0000

// test write
ldr r4, >adr_a		//expected r4 = 0x3C0
st32 r4, r3			//expected value at addr 0xF00 = 0xA000_0000

end: br always >end
nop

		.align
adr_a:	.word	0x3C0	// actual adr at mem 0xF00 (0x3C0<<2 bits)
//adr_a:	.word	0x3F8
//adr_a:	.word	0x20C
