ジャンプ・アンド・レジスタ・リンクを行います。(Jump and Register Link)
[指定形式]
- | jarl disp22, reg2(-Xasm_far_jumpオプション非指定時) |
- | jarl disp32, reg2(-Xasm_far_jumpオプション指定時) |
disp22に指定できるものを次に示します。
disp32に指定できるものを次に示します。
[機能]
第1オペランドに指定した絶対値式,または相対値式の値と,現在のプログラム・カウンタ(PC)値を加算したアドレスに制御を移します。なお,戻りアドレスは,第2オペランドに指定したレジスタに格納されます。
第1オペランドに指定した絶対値式,または相対値式の値と,現在のプログラム・カウンタ(PC)値を加算したアドレスに制御を移します。なお,戻りアドレスは,第2オペランドに指定したレジスタに格納されます。
第1オペランドに指定したレジスタ値が示すアドレスと,現在のプログラム・カウンタ(PC)値を加算したアドレスに制御を移します。なお,戻りアドレスは,第2オペランドに指定したレジスタに格納されます。
[詳細説明]
- | “jarl disp22, reg2”の形式の命令に対し,disp22に次のものを指定した場合,アセンブラでは,機械語命令のjarl命令注が1つ生成されます。 |
(a) | -2097152〜+2097151の範囲の絶対値 |
注 | 機械語命令のjarlは,オペランドに-2097152〜+2097151(0xFE00000〜0x1FFFFF)の範囲のイミーディエトをとります。 |
- | “jarl disp32, reg2”の形式の命令に対し,アセンブラでは,機械語命令のjarl命令(6バイト長命令)が1つ生成されます。 |
- | “jarl [reg1], reg3”の形式の命令に対し,アセンブラでは,機械語命令のjarl命令が1つ生成されます。 |
[フラグ]
[注意事項]
- | disp22に,-2097152〜+2097151の範囲を越える絶対値式を指定した場合,次のメッセージが出力され,アセンブルが中止されます。 |
E0550230 : ディスプレースメントとして指定された値が指定可能な値の範囲を越えています。
|
- | disp22/disp32に,奇数値を持つ絶対値式を指定した場合,次のメッセージが出力され,アセンブルが中止されます。 |
E0550226 : 奇数のディスプレースメントが指定されています。
|
- | reg3にr0を指定すると,次のメッセージが出力され,アセンブルが中止されます。 |
E0550240 : RH850コア指定時には、デスティネーション・オペランドにr0を指定することはできません。
|