第二部 トロン仕様チップ命令詳細第十四章 マルチプロセッサ命令
BCLRI
マルチプロセッサ命令 <<L1R>>,<<L1>>,<<L2>>

【ニモニックとオペランド】

BCLRI offset, base

【機能】

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"にクリアし、そのビットを含むバイトのデータを元のアドレスへ書き込みます。
これらの操作はメモリインタロックの下で行われます。