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

NES アセンブラ入門編】

【 算術演算と論理演算】

ファミコン(6502)の算術演算は、加算と減算のみで、

キャリー付きの加算命令と減算命令が1つずつあるだけです。

論理積命令( AND ) 〗 

 *論理積命令 AND は、Aレジスタオペランドの各BITを比較して、双方が1の時

 のみ そのBITを 1 にする。

 

  『例』

 lda #$44

  and #$0f

  *上記のコードは Aレジスタは #%01000100 オペランドが #$00001111

      なので。

Aレジスタ    #$01000100

オペランド     #$00001111

演算結果                 #$00000100    

*上の演算結果で、#$04 になるのが理解できるとおもう。このことから AND

 命令は、特定のBITを取り出すのに使われる。

 

論理和命令( ORA ) 〗 

 *論理積命令 ORA は、Aレジスタオペランドの各BITを比較して、片方が1の時

 そのBITを 1 にする。

『例』

 lda #$44

   and #$0f

  ora #$80

*上記のコードは Aレジスタは 論理積の続きで #%00000100 オペランドが #$1000000 なので。

Aレジスタ    #$00000100

オペランド     #$10000000

演算結果                 #$10000100    

*上の演算結果で、#$84 になるのが理解できるとおもう。このことから ORA

 命令は、特定のBITをはめ込むのに使われる。

 

  

 

 

f:id:chien1956:20200220202414p:plain