Вы должны понимать, что если вы модифицируете ПК, следующая выполненная инструкция будет той же, что и на новом адресе ПК. Это просто безусловный переход, и у всех процессоров есть такая инструкция.
Обычно нет инструкции LD PC,addr
, но именно это и делает JMP addr
, поэтому неверно, что вы не можете напрямую изменить ее значение. Однако вы не можете изменить его значение без изменения пути выполнения кода - выполнение продолжается с указанного адреса.
В большинстве случаев это можно сделать и косвенно, например, установив указатель стека на местоположение, содержащее новый адрес, и вызвав инструкцию возврата RET.
Различные процессоры и архитектуры могут вести себя по-разному разными способами, и предложенная выше мнемоника инструкций является «общей» и не предназначена для ссылки на какой-либо конкретный набор команд.