An assembly string is a string literal that contains the assembly code.
The assembly string can contain template strings, starting with
%, which the compiler replaces. The main use of these strings is to use registers that the compiler allocates to hold the input and output operands.
Template strings for operands can take one of the following forms:
<modifier> is an optional code that modifies the format of the operand in the final assembly string. You can use the same operand multiple times with different modifiers in one assembly string. See Inline assembly template modifiers.
For numbered template strings, the operands of the inline assembly statement are numbered, starting from zero, in the order they appear in the operand lists. Output operands appear before input operands.
If an operand has a name in the operand lists, you can use this name in the template string instead of the operand number. Square brackets must surround the name. Using names makes larger blocks of inline assembly easier to read and modify.
%% template string emits a
% character into the final assembly string.
%= template string emits a number that is unique to the instance of the
inline assembly statement. See Duplication of labels in inline assembly statements.