Hello PascalDragon,
first I had to look up some things and do some tests.
So if I understand you correctly, for an ASM function the compiler doesn't insert any management code for parameters.
If according to the ABI a parameter is transfered via a register, then in the asm function the programmer has to consider that himself. In a normal function with asm block the parameter transfered via register will be stored to a local variable with the parameter's name, so in the asm block it can be used by accessing that local variable.
In an asm function local variables can be declared and used (but not if the directive nostackframe is used), and the compiler will insert some code to manage/create the stackframe in the same way as in normal functions.
For the registers modified in the asm code my understanding now is, that in the asm block the compiler takes care of pushing and popping if neccessary, but not in a asm function. The programmer has to take care of it himself.
Is that correct?