システム・コール例外を発生させます。(System Call)
[指定形式]
vectorに指定できるものを次に示します。
[機能]
OSのシステム・サービス呼び出しを行います。
(1) | 復帰PC(syscall命令の次の命令のアドレス)とPSWの内容をEIPCとEIPSWに退避します。 |
(2) | vectorに対応する例外要因コードを,EIICレジスタに格納します。
例外要因コードは,8000Hにvectorを加算した値です。 |
(4) | SCBPレジスタの値と,2ビット論理左シフトしワード長までゼロ拡張したvectorを加算して32ビット・テーブル・エントリ・アドレスを生成します。
ただし,vectorがシステム・レジスタのSCCFG.SIZEビットで指定された値より大きい場合,上記加算に用いるvectorは0として扱います。 |
(5) | (4)で生成されたアドレスのワードをロードします。 |
(6) | (5)のデータにSCBPレジスタの値を加算した32ビット・ターゲット・アドレスを生成します。 |
(7) | (6)で生成されたターゲット・アドレスへ分岐します。 |
[詳細説明]
- | アセンブラでは,機械語命令のsyscall命令が1つ生成されます。 |
[フラグ]
[注意事項]
- | vectorに0〜255の範囲を越える絶対値式を指定した場合,次のメッセージを出力し,指定した値の下位8ビット注を用いてアセンブルを続行します。 |
W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。
|
注 | 機械語命令のsyscall命令は,オペランドに0〜255(0x0〜0xFF)範囲のイミーディエトをとります。 |
- | OSのシステム・サービス呼び出しに使用する専用命令です。ユーザ・プログラム中での使用は,各OSの機能仕様にしたがってください。 |
- | syscall命令のテーブル読み出しのためのメモリからの読み出し操作では,スーパバイザ特権でのメモリ保護が行われます。 |