| QINS キュー操作命令 <<L1R>>,<<L1>>,<<L2>> |
【ニモニックとオペランド】
QINS entry, queue
【機能】
Insert entry into queue
キューへエントリを挿入
【オプション】
なし
【命令フォーマットと表記法】
【解説】
QINS命令では、entryオペランドが新しいエントリのアドレスを指定し、queueオペランドが新しいエントリを挿入する直前の既存のキューエントリのアドレスを指定します。TRON仕様では、キューの任意の場所にエントリを挿入できます。
QINS命令の実行手順を以下に詳述します。QINS実行前と実行後のキューの状態を示します。以下に示すキューエントリは便宜のために付番してあります。
![]()
- (1) queue エントリ直前のエントリ
(2) queueオペランドで指定するエントリ(queue エントリ)
(3) queue エントリ直後のエントリ- (4) entryオペランドで指定するエントリ
手順
以下に示すように、entryで指定する新しいエントリの前方リンクと後方リンクにそれぞれqueueエントリ(2)とエントリ(1)のアドレスをセットします。
さらに、以下に示すように、エントリ(1)の前方リンクとqueueエントリ(2)の後方リンクにentryで指定する新しいエントリのアドレスをセットします。
queueオペランドで指定する既存のエントリがキューヘッダである場合には、entryオペランドで指定する新しいエントリがキューの最終エントリとして挿入されます。さらに、キューヘッダが挿入前の唯一のエントリ(空キュー)である場合には、Z_flagがセットされます。
【フラグ変化】
【発生EIT】
RIE entry [Gen-IRS/mx], queue [Gen-IRS/mx]のアドレッシングモード違反
【使用例】
汎用レジスタR0の内容を先頭アドレスとするキューエントリを、R1の内容を先頭アドレスとするキューエントリの直前に挿入します。