/led-bits.s
.thumb

.global sendword
sendword:
	push {r4, r5, r6}
	mov r1, #1
	lsl r1, #23          // r1 - bit mask
	ldr r3, =0x400b2024  // PORTB Set/Reset register
	mov r4, #1
	lsl r4, #16          // r4 - set          
	mov r5, #1           // r5 - reset (inverted due to output MOSFET driver)
	mov r6, #24          // r6 - bit counter
	b 2f
1:
	sub r6, #1
	beq 4f
	lsl r0, #1
2:
	mov r2, r0
	and r2, r1
	beq 3f
	// 1 bit
	str r4, [r3]         // set
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	str r5, [r3]         // reset
	b 1b
3:
	str r4, [r3]
	nop
	nop
	nop
	nop
	str r5, [r3]
	nop
	nop
	nop
	nop
	b 1b
4:
	pop {r4, r5, r6}
	bx lr