That's essentially what any compiler does. The only difference between that and normal compilation is that you have to stop it before the assembler has it's go. Pick a compiler, find out how to get it to stop before the assembly process. I imagine gcc is what you want but I don't know the correct arguments for this task.