This isn't really related to assember, but to functions taking arguments in registers rather than on the stack. AFAIK you can safely remove that __asm between the return type and the function name when using GCC (but don't remove the __asm from any arguments). If you want the code to be compatible with as many compilers as possible, have a look at dev/c/CLib-SDI.lha on Aminet for macros that allow this.