what is a loop
If you are using a goto, you are creating a loop. Doesn't matter if you are using assembler or a high-level language.
Loops in a HLL get translated to gotos (branches) in assembler.
I don't think the recursive code fragment would work. However, the general concept would, but I didn't think of using recursion, and I have been in the biz for 35 years.
The questions are not very useful for the embedded field.