Renesas Synergy™

FAQ 1009148 : 命令セットとアドレッシング・モードについて(instruction set and addressing mode)

マイコンに処理を実行させるための命令が用意されています。一般に、その命令の数が多いほどできることも多いのですが、マイコンでできることは命令の数だけでは議論できません。たとえば、RISCマイコンは比較的単純な命令しか実行できません。しかし、個々の命令を高速に実行させ、命令を組み合わせることで同じことを実現できるようにしています。なお、命令の組み合わせはコンパイラがやってくれるので、プログラムでは細かなことを意識する必要はありません。



命令の数の他に、各々の命令がどのようなアドレッシング・モードを持つかも重要です。アドレッシング・モードは命令の対象をどのように指定できるかを示します。たとえば、複数のデータで構成されたテーブルからデータを参照する場合を考えてみます。



この場合には、やりたいことはデータの転送ですから最終的に使用する命令はMOV命令となります。

基本的なアドレッシングであるレジスタ・インダイレクト・アドレッシングでは、目的のデータを指し示すアドレスをテーブルの先頭アドレスとそこからのオフセットから計算します。その結果をレジスタにセットし、レジスタを使って目的のデータを指し示します。つまり、MOV命令以外にアドレス計算が必要になります。
少し高度なアドレッシングであるベース・アドレッシングではレジスタにはテーブルの先頭アドレスをセットして、命令のオペランドでオフセットを指定します。このアドレッシング・モードは比較的よく使われますが、オフセットを自由に変更することはできません。
オフセットを自由に変更できるアドレッシング・モードとしてベースト・インデクスト・アドレシングがあります。このアドレッシングは、オフセットもレジスタで指定するものです。
さらに、複雑なアドレシングとして②と③を組み合わせたようなアドレッシングもありました。


一時は、どれだけ高度な(従って、複雑な)アドレッシング・モードを使えるかを競った時期もありましたが、ハードウェアが複雑になり、性能のネックとなることから最近はあまり複雑なアドレッシング・モードは少なくなってきています。それでも、アドレッシング・モードは重要な要素であることには違いありません。

また、全ての命令で全てのアドレッシング・モードが使えるわけではありません。命令とアドレッシング・モードの組み合わせにも注意が必要です。

他にご質問がございましたら、リクエストを送信してください