CPU > 命令セット > ORA

「CPU/命令セット/ORA」の編集履歴(バックアップ)一覧に戻る

CPU/命令セット/ORA - (2017/02/20 (月) 17:50:31) のソース

***ORA (OR Accumulator with Memory) [#e2a45bd4]
[アキュームレータとメモリの論理和]

6502 の ORA と同じ動作で、新しいアドレッシングモードが使えるようになっている。
16 ビットメモリ/アキュームレータモードの時 (m=0)、データを 16 ビット幅で扱うことができる。
下位バイトは実効アドレスに入り、上位バイトは実効アドレス + 1 に入る。

''フラグ変化''
 n-----z-
 
 n : 結果の最上位ビットがセットされている時、セットする
 z : 結果が 0 の時セット

''コード一覧''
|アドレッシングモード|文法|オペコード|バイト数|命令サイクル|注|h
|[[Immediate>CPU/アドレッシングモード/Immediate]]|ORA #const|09|2*|2 | 1|
|[[Absolute>CPU/アドレッシングモード/Absolute]]|ORA addr|0D|3|4 | 1|
|[[Absolute Long>CPU/アドレッシングモード/Absolute Long]]|ORA long|0F|4|5 | 1|
|[[Direct Page>CPU/アドレッシングモード/Direct Page]]|ORA dp|05|2|3 | 1,2|
|[[Direct Page Indirect>CPU/アドレッシングモード/Direct Page Indirect]]|ORA (dp)|12|2|5 | 1,2|
|[[Direct Page Indirect Long>CPU/アドレッシングモード/Direct Page Indirect Long]]|ORA [dp]|07|2|6 | 1,2|
|[[Absolute Indexed,X>CPU/アドレッシングモード/Absolute Indexed,X]]|ORA addr,X|1D|3|4 | 1,3|
|[[Absolute Long Indexed,X>CPU/アドレッシングモード/Absolute Long Indexed,X]]|ORA long,X|1F|4|5 | 1|
|[[Absolute Indexed,Y>CPU/アドレッシングモード/Absolute Indexed,Y]]|ORA addr,Y|19|3|4 | 1,3|
|[[Direct Page Indexed,X>CPU/アドレッシングモード/Direct Page Indexed,X]]|ORA dp,X|15|2|4 | 1,2|
|[[Direct Page Indexed Indirect,X>CPU/アドレッシングモード/Direct Page Indexed Indirect,X]]|ORA (dp,X)|01|2|6 | 1,2|
|[[Direct Page Indirect Indexed,Y>CPU/アドレッシングモード/Direct Page Indirect Indexed,Y]]|ORA (dp),Y|11|2|5 | 1,2,3|
|[[Direct Page Indirect Long Indexed,Y>CPU/アドレッシングモード/Direct Page Indirect Long Indexed,Y]]|ORA [dp],Y|17|2|6 | 1,2|
|[[Stack Relative>CPU/アドレッシングモード/Stack Relative]]|ORA sr,S|03|2|4 | 1|
|[[Stack Relative Indirect Indexed,Y>CPU/アドレッシングモード/Stack Relative Indirect Indexed,Y]]|ORA (sr,S),Y|13|2|7 | 1|

 * : m=0 (16-bit メモリ/アキュームレータ) の時 1 バイト増加
 1 : m=0 (16-bit メモリ/アキュームレータ) の時 1 サイクル増加
 2 : ダイレクトページレジスタの下位バイトが 0 でない場合 1 サイクル増加
 3 : インデックスがページ境界をまたいだ場合 1 サイクル増加