Вместо того, чтобы изменять вывод, почему бы вам не переписать критические разделы кода во встроенном ассемблере? Как это сделать, зависит от компиляторов. Проверьте документацию по компиляторам.
В MSVC:
// asm_overview.cpp
// processor: x86
void __declspec(naked) main()
{
// Naked functions must provide their own prolog...
__asm {
push ebp
mov ebp, esp
sub esp, __LOCAL_SIZE
}
// ... and epilog
__asm {
pop ebp
ret
}
}
В GCC:
__asm__ ("movl %eax, %ebx\n\t"
"movl $56, %esi\n\t"
"movl %ecx, $label(%edx,%ebx,$4)\n\t"
"movb %ah, (%ebx)");
Обратите внимание, что внесение изменений в ASM ПОСЛЕ компиляции и оптимизации - это то, что нужно только тем, кто точно знает, что они делают. Компилятор не только оптимизирует структуру так, как это не может сделать человек (по крайней мере, без возможностей калькулятора освещения), он также выполняет гораздо более сложный анализ кода, который мы могли бы когда-либо делать.
Доверьтесь своему компилятору. Это самый лучший инструмент, с которым вы когда-либо работали;).