ドラクエ風RPGファミコンプログラム講座

NES アセンブラ入門編】

【 シフト・ローテート命令 】

〖 左シフト命令 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: はみ出たビット

 

f:id:chien1956:20200220202414p:plain