In the following section of code:
ldi r16,255
out IO(DDRB),r16
ldi r30,1
subi r30,lo8(-(array))
sbci r31,hi8(-(array))
ld r24,Z
out IO(PORTB),r24
Because there is an - (array) within both lo8 and hi8? And why are the subi and subci instructions used here? How does the address for the 2nd element get this? I'm using avr-gcc.