Assembler is not a “structured language.” Look at the multitude of jmp instructions and labels that allow the program execution to jump around and back and forth. Modern high-level programming languages have structures such as do...while, while...do, case, and so on. This is not so with assembly language.
But similar to modern program languages, assembly language has functions and procedures to help you give your code more structure. A little bit of nit-picking: a function executes instructions and returns a value. A procedure executes instructions and does not return a value.
In this book, we have ...