I'm not sure how to interpret an ASM execution flow. Until now, all of the files I've looked at have had explicit jumps (Intel x86 AT&T syntax, i.e jmp or jl) to labels within the ASM file.
My question: what happens when you reach the end of a label without an explicit jump to some other label. Does execution continue into the next label?
Example:
foo:
opcodes
...
nextLablel:
moreopcodes
...
After executing the opcodes under the 'foo' label, does the assembler move onto 'nextLablel'?
Thanks in advance!
The labels are non existent to the actual code, so yes, if there is no branch, the code will execute naturally. The assembler will just continue with the code, ignoring any labels. The labels are just there as a convenient way to branching after a jmp, je and the likes.
If your code did not have any branches, you could still have as many labels as you wanted. They would not do anything and it would be a very bad practice, but you this illustrates the idea that they do not cause any problems with the natural code flow.