При чем здесь железо?
Я никогда не говорил об обратной трассировке машинного кода. Вы же не воспринимаете программу на Pascal как набор машинных кодов, наверное для вас это всё же код на Pascal. Почему, когда речь идет об обратном разборе этого кода, вы воспринимаете эту операцию буквально и пытаете представить обратный разбор инструкций с непонятной обработкой стека и регистров. Просто представьте, что тот же код на Pascal перевернут с ног на голову (не машинные инструкции, а операторы Pascal), хотя это упрощенное представление. Можно даже добавить такие вещи:
- Код: Выделить всё
begin
Inc(x);
back
Dec(x);
end;
Где
Inc(x) выполняется при прямом проходе, а
Dec(x) - при обратном.
Вопрос состоит в том, как это можно использовать? Фактически я предложил инструмент, осталось найти ему применение :-).
Что касается переходов, надеюсь речь не о
goto. В любом случае, есть два варианта; (1) это запомнить точку, откуда совершен переход и, при достижении метки, вернуться к этой точке, в момент обратного прохода, или (2) "по всем правилам", пройти мимо метки (как и при прямом проходе).
..bw