論理シフト・ローテート命令

ASL (Arithmetic Shift Left)

算術左シフトします。値は倍になります。シフト前の最上位ビットはキャリーフラグに書き込まれます。
この命令で変更されうるフラグはネガティブフラグ・ゼロフラグ・キャリーフラグです。

OC 文法 アドレッシングモード バイト数 サイクル
0A ASL A Accumulator 1 2  
0E ASL $???? Absolute 3 6  
06 ASL $?? Direct Page 2 5 1
1E ASL $????,x Absolute Indexed, X 3 7  
16 ASL $??,X Direct Page Indexed, X 2 6 1


アキュムレータが16bitのとき2サイクル追加

1:Dレジスタの下位バイトが0で無い場合1サイクル追加

LSR (Logical Shift Right)

論理右シフトします。値は半分になります。シフト前の最下位ビットはキャリーフラグに書き込まれます。
この命令で変更されうるフラグはネガティブフラグ・ゼロフラグ・キャリーフラグです。

OC 文法 アドレッシングモード バイト数 サイクル
4A LSR A Accumulator 1 2  
4E LSR $???? Absolute 3 6  
46 LSR $?? Direct Page 2 5 1
5E LSR $????,x Absolute Indexed, X 3 7  
56 LSR $??,X Direct Page Indexed, X 2 6 1


アキュムレータが16bitのとき2サイクル追加

1:Dレジスタの下位バイトが0で無い場合1サイクル追加

ROL (Rotate Memory of Accumulator Left)

アキュムレータにキャリーフラグを含めた9bitまたは17bitで左ローテートします。
この命令で変更されうるフラグはネガティブフラグ・ゼロフラグ・キャリーフラグです。

OC 文法 アドレッシングモード バイト数 サイクル
2A ROL A Accumulator 1 2  
2E ROL $???? Absolute 3 6  
26 ROL $?? Direct Page 2 5 1
3E ROL $????,x Absolute Indexed, X 3 7  
36 ROL $??,X Direct Page Indexed, X 2 6 1


アキュムレータが16bitのとき2サイクル追加

1:Dレジスタの下位バイトが0で無い場合1サイクル追加

ROR (Rotate Memory of Accumulator Right)

アキュムレータにキャリーフラグを含めた9bitまたは17bitで右ローテートします。
この命令で変更されうるフラグはネガティブフラグ・ゼロフラグ・キャリーフラグです。

OC 文法 アドレッシングモード バイト数 サイクル
6A ROR A Accumulator 1 2  
6E ROR $???? Absolute 3 6  
66 ROR $?? Direct Page 2 5 1
7E ROR $????,x Absolute Indexed, X 3 7  
76 ROR $??,X Direct Page Indexed, X 2 6 1


アキュムレータが16bitのとき2サイクル追加

1:Dレジスタの下位バイトが0で無い場合1サイクル追加