Я хочу написать фрагмент кода, который постоянно меняется, даже если это изменение незначительно.
Например, может быть что-то вроде
for i in 1 to 100, do
begin
x := 200
for j in 200 downto 1, do
begin
do something
end
end
Предположим, я хочу, чтобы мой код после первой итерации изменил строку x := 200
на другую строку x := 199
изатем после следующей итерации измените его на x := 198
и так далее.
Возможно ли написание такого кода?Нужно ли для этого использовать встроенную сборку?
РЕДАКТИРОВАТЬ: Вот почему я хочу сделать это на C:
Эта программа будет работать в экспериментальной операционной системе, и я не могу / не знаю, как использовать скомпилированные программыс других языков.Настоящая причина, по которой мне нужен такой код, заключается в том, что этот код выполняется в гостевой операционной системе на виртуальной машине.Гипервизор - это двоичный переводчик, который переводит куски кода.Переводчик делает некоторые оптимизации.Он переводит куски кода только один раз.В следующий раз, когда этот же чанк будет использован в гостевой системе, переводчик будет использовать ранее переведенный результат.Теперь, если код изменяется на лету, переводчик замечает это и помечает свой предыдущий перевод как устаревший.Таким образом вынуждает повторный перевод того же кода.Это то, чего я хочу добиться, заставить переводчика делать много переводов.Обычно эти фрагменты являются инструкциями между инструкциями перехода (такими как инструкции перехода).Я просто думаю, что самоизменяющийся код был бы фантастическим способом достичь этого.