Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

3.9.6. プログラム制御命令

Nios II アーキテクチャーは、無条件ジャンプ命令、分岐命令および呼び出し命令 をサポートしています。これらの命令には遅延スロットはありません。
表 55.  無条件ジャンプ命令および呼び出し命令
命令 説明
call この命令は、即値をサブルーチンの絶対アドレスとして使用してサブルーチンを呼び出し、レジスターraに戻りアドレスを格納します。
callr この命令は、レジスター内の絶対アドレスに置かれているサブルーチンを呼び出して、戻りアドレスをレジスターraに格納します。この命令は C 関数ポインターを逆参照する役割を果たします。
ret ret命令は、callまたはcallrで呼び出されたサブルーチンから復帰するために使用されます。retは、レジスターraのアドレスで指定される命令をロードして実行します。
jmp jmp命令は、レジスターに格納された絶対アドレスへのジャンプを実行します。jmpは、C プログラミング言語の switch 文を実現するのに使用されます。
jmpi jmpi命令は、絶対アドレスを決定ために即値を使用して絶対アドレスにジャンプします。
br この命令は現在の命令に対し、相対的に分岐します。符号付き即値で、次に実行する命令のオフセットを設定します。

条件付き分岐命令は、レジスター値を直接比較し、式が真の場合は分岐します。条件付き分岐は C プログラミング言語の以下の等号比較および関係比較をサポートしています。

  • == および !=
  • < および <= ( 符号付きおよび符号なし )
  • > および >= ( 符号付きおよび符号なし )

条件付き分岐命令には遅延スロットはありません。

表 56.  条件付き分岐命令
命令 説明
bge
bgeu
bgt
bgtu
ble
bleu
blt
bltu
beq
bne これらの命令は、2 つのレジスター値を比較する相対分岐を実現し、式が真の場合は分岐します。実装されている関係演算子の説明については、この章の「比較命令」を参照してください。