use argument symbols in SimpleString.c asm code

Previously the argument addresses were being calculated by hand, which
required the Frame Pointer Omission optimization and disallowed Whole
Program Optimization in Win32 builds (so that the calling conventions
were predictable). This loosens that requirement and fixes Win32 builds.