第二部 トロン仕様チップ命令詳細|第十四章 マルチプロセッサ命令
| BCLRI マルチプロセッサ命令 <<L1R>>,<<L1>>,<<L2>> |
【ニモニックとオペランド】
【機能】
Clear a bit with interlock
インタロック状態でのビットのクリア
【オプション】
なし
【命令フォーマットと表記法】
【解説】
この命令は指定ビットの反転値をZ_flagへコピーして、その後、そのビットを"0"にクリアします。これら2つの操作がメモリインタロックの下で行われます。
この命令を使用して複数のプロセッサを同期化できます。
baseのサイズsyはメモリアクセスのサイズを指定します。ハーフワードとワードのサイズ指定は仕様レベル<<L2>>です。baseのサイズとしてハーフワードまたはワードを指定したときに、baseがアライメントのとれていないアドレスであった場合には、メモリアクセスの範囲はインプリメント依存となります。これはビット操作命令の場合と同様です(241頁参照)。アライメントされていないハーフワードまたはワードを指定すると、CSI命令の場合と同様に、メモリインタロックの下で複数のメモリアクセスが行われます。
【フラグ変化】
【発生EIT】
RIE offset [Gen/r], base [Gen-R/fi]のアドレッシングモード違反 RIE sx = 11, sy = 11 RIE sy = 01, sy = 10 ; 仕様レベル<<L2>>以外
【使用例】
16ビット長の数値H'2000を32ビットに符号拡張して(H'00002000)、8ビットのoffsetオペランド(H'73)の上位5ビットの値(H'0e)を加算します。この加算結果(H'0000200e)を実効アドレスとして使用してメモリから1バイトを読み出します。メモリから読み出された8ビットのデータのうちの1ビットをoffsetオペランドの下位3ビット(H'3)で指定します。そのビット(ビット番号3)の反転値をZ_flagにコピーします。指定ビットを"0"にクリアし、そのビットを含むバイトのデータを元のアドレスへ書き込みます。
これらの操作はメモリインタロックの下で行われます。