LSR 命令 (Logical Shift Memory Right)
アキュムレータまたはメモリの値を論理右シフトします。

LSR オーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
4A
LSR A
Acc.
1
2
46
LSR dp
DP.
2
5
1, 2
56
LSR dp, X
DP. Idx X
2
6
1, 2
4E
LSR abs
Abs.
3
6
1
5E
LSR abs, X
Abs. Idx X
3
7
1


1. メモリモードフラグクリア時は1サイクル追加
2. ダイレクトページの開始アドレスがページ境界になっていない場合1サイクル追加
 
フラグ変化
n-----zc

n: 結果のMSBが格納される。右シフトの場合、これは常に0であるから、このフラグは常にクリアされる。
z: 結果が0の場合にセットされ、それ以外の場合はクリアされる。
c: 演算前のメモリまたはアキュムレータの値のLSBがセットされる。

解説
LSR命令はオペコードによって指定されたアドレッシングモードに従って、アキュムレータまたはメモリの値を論理右シフトしてアキュムレータまたはメモリに返します。
シフト操作はキャリーフラグを含めずに実行され、演算前のLSBはキャリーフラグへ押し出されます。
アキュムレータが16ビット幅の場合は16ビットで計算を行い、8ビットの場合は8ビットで計算を行います。

参照