第 11 章
11.2 ビットシフト命令の使用
説明:
ビットシフト命令は、ラングがTrue (1)にセットされるごとに、指定された アドレス内のすべてのビットを1ビットずつシフトします。シフト命令には 以下のものがあります。• ビットシフト左(BSL)
• ビットシフト右(BSR)
11.2.1 オペランドの入力
ビットシフト命令をプログラミングするためには、以下のオペランドを指定 しなければなりません。
(EN) (DN) BSL
BIT SHIFT LEFT File Control Bit address Length
オペランド 定義
File 処理するビット配列のアドレス。これは、バイナリ・ファイル・アド レスを指定する必要がある。配列は、エレメント番号1,2,3などを使 用して、16ビットのエレメント境界から開始する必要がある。15999 までの任意のビット数で配列を終了することができる。ただし、命令 は残りのビットを無効にするため、そのエレメント内の残りのビット を使用することはできない。
Control 命令のステータスビット、配列のサイズ(ビット数)、およびビット
ポインタを格納するメモリのコントロール領域(R)の制御構造 (48 ビット:16ビットワード×3)のアドレスです。
Position ビットファイルの長さに等しい値と0を切換える。コントロールファ
イルのオフセットと並列したオフセットで命令を開始する場合のみ、
値を入力してください。このオペランドをアドレス指定する場合は、
ニーモニックでコントロールアドレスを使用してください。
Bit Address ソースビットのアドレス。命令は、このビットのステータスを、配列
の先頭の(最下位)ビット位置(BSL命令の場合)に挿入するか、ま たは最後の(最上位)ビット位置(BSR命令の場合)に挿入する。
Length シフトするビット配列内のビット数の10進数。I/Oファイルのビッ
トは8進数の00~17であるのに対して、他のすべてのファイルの ビットは10進数の0~15であることに注意してください。このオペ ランドを指定する場合は、ニーモニックでコントロールアドレスを使 用してください。
!
注意:2つ以上の命令に同じコントロールアドレスを使用しな いでください。機械に予期しない動作が発生し、機器の損傷ま たは人身事故を招くことがあります。
シフトレジスタ命令(BSL, BSR, FFL, FFU, LFL, LFU) 11-3
11.2.2 ステータスビットの使用
BSLまたはBSR命令を正しく使用するためには、ラダープログラムで制御 エレメントのステータスビットを評価する必要があります。ニーモニックに よって、これらのビットをアドレス指定します。
重要:ビットポインタはONになると、ビット配列をシフトするLength (長 さ)の値にセットされます。すべてのビットをシフト後、入力状態が
False (0)にリセットされると、命令は.ENビット、.ERビット、.DN
ビット、およびビットポインタをリセットします。
ビットシフト左 (BSL) 命令例:
ビット セットの条件
有効.EN (ビット15)
ラングがTrue (1)にセットされるとセットされ、命令が有効で
あることを示す。
完了.DN (ビット13)
ビット配列が、1ビットシフトされるとセットされる。
エラー.ER (ビット11)
負のファイル長を指定した場合など、命令がエラーを検出す るとセットされる。
アンロード.UL (ビット10)
命令の出力
.ULビットは、命令が有効になるたびに配列から削除された ビットのステータスを格納する。.ERビットがセットされるて いるときは、.ULビットを使用しないでください。
(EN) (DN) BSL
BIT SHIFT LEFT
File #B3:1
Control R6:53
Bit address I:022/12
Length 58
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 16
47 32
63 48
無効 73 64
95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80
58ビット配列
#B3/16 (B3:1) ソースI:022/12
アンロード ビット
L
L
L
L
オペランド 説明
File (#B3:1) ビット配列の位置
Control (R6:53) 命令のアドレスおよび制御エレメント
Bit Address (I:022/12) ソースビットの位置(入力ワード22のビット12)
Length (58) ビット配列内のビット数
BSL命令が指定されたラング状態がFalse (1)からTrue (1)にセットされる と、プロセッサは、.ENビットをセットします。次に、プロセッサは、ビッ トファイルB3の58のビットを、ビット16から開始して左に(高いビット 番号の方に)1ビットシフトします。最後のビットはビット73の外にある .ULビットの中にシフトされます。指定したソースビットである入力ワード 22のビット12は、最初のビット位置であるビットファイルB3のビット16 にシフトされます。
プロセッサが1プログラムスキャンの間にシフト処理を完了した後に、ラン
グがFalse (0)にリセットされると、命令は.EN, .ER(セットされている場合)
および.DNビットをリセットして、ポインタをリセットします。
循環処理の場合、ソースアドレスを最上位のビット(内容が消えてしまう ビット)のアドレスと同じにしてください。循環処理では、.ULビットの使 用を省略することができます。
ビットシフト右 (BSR) 命令例:
BSR命令が指定されたラングがFalse(0)からTrue (1)にセットされると、プ ロセッサは.ENビットをセットします。次に、プロセッサは、ビットファ イルB3の38ビットを、最上位のビット69から開始して右に(低いビット 番号の方に)1ビットシフトします。最下位ビット(ビット32)は、ビット配 列から出て.ULビットの中にシフトされます。指定された入力ワード23の ソースビット06は、最上位ビット位置である69にシフトされます。
プロセッサが1プログラムスキャンの間にシフト処理を完了した後に、ラン
グがFalse (0)にリセットされると、命令は.EN, .ER(セットされている場合)
(EN) (DN) BSR
BIT SHIFT RIGHT
File #B3:2
Control R6:54
Bit address I:023/06
Length 38
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
47 32
63 48
無効 69 64
95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80
38ビット配列
#B3/32 (#B3:2) アンロード ビット
ビット アドレスI:023/06
R
R
R
オペランド 説明
File (#B3:2) ビット配列の位置
Control (R6:54) 命令のアドレスおよび制御エレメント
Bit Address (I:023/06) ソースビットのアドレス(入力ワード23のビット06)
Length (38) ビット配列内のビット番号
シフトレジスタ命令(BSL, BSR, FFL, FFU, LFL, LFU) 11-5