Можно ли изменить код, созданный компилятором в exe файле?
Я пытаюсь изменить выходной код компилятора следующим образом:
Код, который я пишу в файле cpp:
a++;
И компилятор сгенерирует следующий код:
INC [a]
Как я могу изменить его на это:
ADD [a],1
Я хочу, чтобы компилятор выполнял это каждый раз, когда компилятор компилирует этот оператор, и поэтому оператор asm не работает. Также я хочу изменить его только на одной платформе.
Я уверен, что компилятор генерирует код на основе шаблона, так как я могу его изменить (если можно)?
Просто используйте встроенную сборку. Например, в GCC:
#ifdef PLATFORM_X86
__asm__ ( "addl $1, %0" : "=r"(a) : : "memory" );
#else
a++;
#endif
#ifdef
!
INC
вместоADD 1
. Есть ли конкретная причина, по которой вы хотите, чтобы ваш компилятор предпочел последний последнему?