Thanks to Jim for sharing this tutorial with us.
An inline assembly statement is a string which specifies assembler code. The string can contain any instructions recognized by the assembler, including directives (we will not discuss assembler directives here). GCC does not parse the assembler instructions and does not know what they mean or even whether they are valid. Multiple assembler instructions can be placed together in a single asm string.