ドラクエ風RPGファミコンプログラム講座
【 算術演算と論理演算】
* ファミコン(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をはめ込むのに使われる。