ドラクエ風RPGファミコンプログラム講座
【 シフト・ローテート命令 】
〖 左シフト命令 ASL 〗
*ASL は左に 1bit シフト する命令です。(空いた部分には 0 が入ります。)
Aレジスタ x2を実行している。
『例』
lda #$01 ;#%00000001
asl a ;#%00000010
〖 右シフト命令 LSR〗
*LSR は右に 1bit シフト する命令です。(空いた部分には 0 が入ります。)部分には 0 が入
Aレジスタ /2を実行している。
『例』
lda #$08 ;#%00001000
lsr a ;#%00000100
〖 左ローテート命令 ROL 〗
*ROL は左に 1bit ローテートします。(左シフトを行い、空いた部分に C が入る)。
〖 右ローテート命令 ROR 〗
*RORは右に 1bit ローテートします。(右シフトを行い、空いた部分に C が入る)。
これらの命令は N, Z, C フラグを書き換えます:
- N: 結果の最上位ビット
- Z: 結果が 0 であるか
- C: はみ出たビット