I think using a do while loop is a lot easier on the LC3 machine. And a whole lot of less coding too.
.ORIG x3000
AND R1,R1,#0 ;making sure register 1 has 0 before we start.
ADD R1,R1,#6 ;setting our counter to 6, i will explain why in a sec
LOOP LEA R0, HELLO_WORLD
ADD R1,R1,#-1 ;the counter is decremented before we start with the loop
BRZ DONE ;break condition and the start of the next process
PUTS
BR LOOP ;going back to the start of the loop while counter !=0
DONE HALT ;next process starts here, stopping the program
HELLO_WORLD .STRINGZ "HELLO WORLD\n"
.END
The reason I set the counter to 6 is it actually gets decremented before the loop actually starts, so when the loop starts it's actually 5. The reason why I did it is because BR instruction is tied to the last register you fiddled with. If you want to set it to 0, just change the line that has ADD R1, R1, #6 into
ADD R1, R1, #5. Change the loop into this.
LOOP LEA R0, HELLO_WORLD
ADD R1, R1, #0
BRZ DONE
PUTS
ADD R1, R1, #-1
BR LOOP
Hope this helps!