To refer to a memory location, you can use the name of a local variable or argument.
The rule for assigning arguments to registers or memory depends on whether the function has a stack frame.
If function has a stack frame, the inline assembler assigns:
If a function has no stack frame, the inline assembler assigns arguments that are declared register and kept in registers. If you have variable or non-register arguments, the compiler will warn you that you should use frfree