# Subroutines

_Subroutine_ is the generic name for a sequence of instructions with a well-defined start and end (→ a packaged unit) and a well-defined purpose. Java methods, C functions, and Pascal procedures are all examples of subroutines in higher-level languages.

Using and writing subroutines in Assembly is arguably harder than for higher-level languages. There are conventions that need to be respected and you need to understand the technical details of subroutine calls and return statements to write subroutines that do not mess up the caller's program.
