It has a specific command to turn high level register optimisation off so you can use all of the available registers. You still need to observe the Intel ABI but it allows mixing of simple assembler with high level code. For more complicated procedures it is better to put the code into a separate function or if its overhead critical a specialised procedure called a FASTPROC where you write your own entry/exit code.
I read long ago advice against inline asm,because it breaks compilers own way of optimize
maybe possible a inline asm snippet,where I had no problem of using all registers dont get that fast because C compiler for example might have lots of pushs ahead of you inline asm snippet and lots of pops afterwards,so calling that PROC in a loop that has inlineasm becomes little slower than the asm snippet you see
but reading asm files produced by a compiler makes use alot of esp register for local arrays,so maybe thats a coding style to use also esp as array pointers than the usual 3 registers inside PROC?