[新連載開始]W65C02マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第38回]
●LDA,LDX,LDY
今までは小手調べ的にW65C02をさわってきました。
今回あたりからいよいよ本格的なモードになってきます。
LDAはアキュムレータに8ビットの値を書き込む(ロードする)命令です。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| LDA a | AD | LDA $1234 | 3 | 4 |
| LDA a,x | BD | LDA $1234,x | 3 | 4 |
| LDA a,y | B9 | LDA $1234,y | 3 | 4 |
| LDA # | A9 | LDA #$12 | 2 | 2 |
| LDA zp | A5 | LDA $12 | 2 | 3 |
| LDA (zp,x) | A1 | LDA ($12,x) | 2 | 6 |
| LDA (zp) | B2 | LDA ($12) | 2 | 5 |
| LDA zp,x | B5 | LDA $12,x | 2 | 4 |
| LDA (zp),y | B1 | LDA ($12),y | 2 | 5 |
a a,x a,y # zp (zp,x) (zp) zp,x (zp),y はアドレッシングモードです。
aは絶対アドレスでzpはゼロページです。
,xはxの値で修飾することを示します。
,yはxの値で修飾することを示します。
#は8ビットの即値です。
16ビットの即値はありません。
()は間接アドレス指定です。
()内で指定するアドレスの値が最終的な下位アドレスになりその次のアドレスの値が最終的な上位アドレスになります。
W65C02のアドレッシングモードは[第4回]で説明していますので適宜参照してください。
LDXはXレジスタに8ビットの値を書き込む命令です。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| LDX a | AE | LDX $1234 | 3 | 4 |
| LDX a,y | BE | LDX $1234,y | 3 | 4 |
| LDX # | A2 | LDX #$12 | 2 | 2 |
| LDX zp | A6 | LDX $12 | 2 | 3 |
| LDX zp,y | B6 | LDX $12,y | 2 | 4 |
LDYはYレジスタに8ビットの値を書き込む命令です。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| LDY a | AC | LDY $1234 | 3 | 4 |
| LDY a,x | BC | LDY $1234,x | 3 | 4 |
| LDY # | A0 | LDY #$12 | 2 | 2 |
| LDY zp | A4 | LDY $12 | 2 | 3 |
| LDY zp,x | B4 | LDY $12,x | 2 | 4 |
LDA、LDX、LDYはロードする値によりN、Zフラグが変化します。
W65C02マイコンボードの製作[第38回]
2026.8.9 upload
前へ
次へ
ホームページトップへ戻る