[新連載開始]W65C02マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第39回]
●STA,STX,STY
前回はレジスタに値をロードする命令でした。
今回はレジスタの値をメモリに書き込む命令です。
STAはアキュムレータの値をメモリに書き込みます。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| STA a | 8D | STA $1234 | 3 | 4 |
| STA a,x | 9D | STA $1234,x | 3 | 5 |
| STA a,y | 99 | STA $1234,y | 3 | 5 |
| STA zp | 85 | STA $12 | 2 | 3 |
| STA (zp,x) | 81 | STA ($12,x) | 2 | 6 |
| STA (zp) | 92 | STA ($12) | 2 | 5 |
| STA zp,x | 95 | STA $12,x | 2 | 4 |
| STA (zp),y | 91 | STA ($12),y | 2 | 6 |
a a,x a,y # zp (zp,x) (zp) zp,x (zp),y はアドレッシングモードです。
aは絶対アドレスでzpはゼロページです。
,xはxの値で修飾することを示します。
,yはxの値で修飾することを示します。
レジスタの値をメモリに書き込みますから即値#はありません。
()は間接アドレス指定です。
()内で指定するアドレスの値が最終的な下位アドレスになりその次のアドレスの値が最終的な上位アドレスになります。
W65C02のアドレッシングモードは[第4回]で説明していますので適宜参照してください。
STXはXレジスタの値をメモリに書き込みます。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| STX a | 8E | STX $1234 | 3 | 4 |
| STX zp | 86 | STX $12 | 2 | 3 |
| STX zp,y | 96 | STX $12,y | 2 | 4 |
STYはYレジスタの値をメモリに書き込みます。
以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| STY a | 8C | STY $1234 | 3 | 4 |
| STY zp | 84 | STY $12 | 2 | 3 |
| STY zp,x | 94 | STY $12,x | 2 | 4 |
STA、STX、STYはフラグは変化しません。
W65C02マイコンボードの製作[第39回]
2026.8.10 upload
前へ
次へ
ホームページトップへ戻る