2026.8.18
前へ

ホームページトップへ戻る


[新連載開始]W65C02マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第47回]



●ASL,LSR,ROL,ROR

ASLはメモリの値を左に1ビットシフトします。
最下位ビットには0が入りシフト前の最上位ビットの値がCに入ります。
C<−7 6 5 4 3 2 1 0<−0
オペランド無しのASL命令はアキュムレータを左シフトします。
演算の結果によってN、Z、Cフラグがセット、リセットされます。
以下の命令があります。
 ニーモニック  マシン語コード  アセンブラ書式 バイト数 クロック数
 ASL a  0E  ASL $1234  3  6
 ASL a,x  1E  ASL $1234,x   3  7
 ASL zp  06  ASL $12  2  5
 ASL zp,x  16  ASL $12,x  2  6
 ASL A  0A  ASL  1  2
a a,x zp zp,xはアドレッシングモードです。
aは絶対アドレスでzpはゼロページです。
,xはxの値で修飾することを示します。
Aはアキュムレータです(アセンブラ書式ではオペランド無しになります)。
W65C02のアドレッシングモードは[第4回]で説明していますので適宜参照してください。

LSRはメモリの値を右に1ビットシフトします。
最上位ビットには0が入りシフト前の最下位ビットの値がCに入ります。
0−>7 6 5 4 3 2 1 0−>C
オペランド無しのLSR命令はアキュムレータを右シフトします。
演算の結果によってN、Z、Cフラグがセット、リセットされます。
以下の命令があります。
 ニーモニック  マシン語コード  アセンブラ書式 バイト数 クロック数
 LSR a  4E  LSR $1234  3  6
 LSR a,x  5E  LSR $1234,x   3  7
 LSR zp  46  LSR $12  2  5
 LSR zp,x  56  LSR $12,x  2  6
 LSR A  4A  LSR  1  2

ROLはCを含めてメモリの値を左に1ビット回転します。
最下位ビットにはCの値が入り最上位ビットの値がCに入ります。
C<−7 6 5 4 3 2 1 0<−C
オペランド無しのROL命令はアキュムレータを左シフトします。
演算の結果によってN、Z、Cフラグがセット、リセットされます。
以下の命令があります。
 ニーモニック  マシン語コード  アセンブラ書式 バイト数 クロック数
 ROL a  2E  ROL $1234  3  6
 ROL a,x  3E  ROL $1234,x   3  7
 ROL zp  26  ROL $12  2  5
 ROL zp,x  36  ROL $12,x  2  6
 ROL A  2A  ROL  1  2

RORはCを含めてメモリの値を右に1ビット回転します。
最上位ビットにはCの値が入り最下位ビットの値がCに入ります。
C−>7 6 5 4 3 2 1 0−>C
オペランド無しのRORL命令はアキュムレータを左シフトします。
演算の結果によってN、Z、Cフラグがセット、リセットされます。
以下の命令があります。
 ニーモニック  マシン語コード  アセンブラ書式 バイト数 クロック数
 ROR a  6E  ROR $1234  3  6
 ROR a,x  7E  ROR $1234,x   3  7
 ROR zp  66  ROR $12  2  5
 ROR zp,x  76  ROR $12,x  2  6
 ROR A  6A  ROR  1  2

W65C02マイコンボードの製作[第47回]
2026.8.18 upload

前へ

ホームページトップへ戻る