> Why does this happen?
It's an artefact of using modern optimising compilers.
1. A for loop can execute zero times.
2. Some compilers move the condition to the end of the loop.
This does result in some visual weirdness when single stepping the code, as not all the instructions for a line of code are necessarily contiguous in the assembler.
Plus your for loop lacks any braces, so the last line of your loop is also the last line of your program.