This isn't just preference, as I continue to discover details about their use -- Using both the "assembler;" and "[’EAX’,’EBX’]" constructs together results in "Warning: Register list is ignored for pure assembler routines". That's news. If it is documented somewhere, please provide a link to it. So in pure assembler functions and procedures ("assembler;") does the compiler save and restore all registers and allow the user access to any of them, or just some subset, or none of them (and the programmer has to take care of that), or what? I'm not asking for guesses at the answer, but for documentation on exactly what the two constructs ("assembler;" and the "[’EAX’,’EBX’] list") do. If someone knows how to ask the appropriate compiler author to comment here, please do so.