プログラムカウンターについて読んでいるうちに、プログラムカウンターはその値を直接変更する方法がないという点で特別であることを知りました。
プログラムカウンターの内容にアクセス/変更する間接的な方法はありますか?
プログラムカウンターについて読んでいるうちに、プログラムカウンターはその値を直接変更する方法がないという点で特別であることを知りました。
プログラムカウンターの内容にアクセス/変更する間接的な方法はありますか?
PC を変更すると、次に実行される命令は新しい PC アドレスの命令になることを理解しておく必要があります。これは単なる無条件ジャンプであり、すべてのプロセッサがそのような命令を持っています。
通常、LD PC,addr
命令はありませんが、まさにJMP addr
そのため、その値を直接変更できないというわけではありません。ただし、コードの実行パスを変更せずにその値を変更することはできません。実行は指定されたアドレスから続行されます。
ほとんどの場合、たとえば、スタック ポインターを新しいアドレスを含む場所に設定し、RET リターン命令を呼び出すことによって、間接的に行うこともできます。
プロセッサやアーキテクチャが異なれば、多くの点で異なる動作をする可能性があります。上記で提案した命令ニーモニックは「一般的な」ものであり、特定の命令セットを参照することを意図したものではありません。
無条件ジャンプ命令は PC の値を直接変更します。