65C816 プログラミング リファレンス

このコンテンツ セットには、65C816アセンブリに関する汎用的な説明が含まれます。

アーキテクチャ

レジスタ
65C816プロセッサの内部レジスタについて説明します。

アドレッシングモード
65C816で利用可能なアドレッシングモードについて説明します。

実例

レシピ集
よく使う処理を、目的別のコード例でまとめています。

命令セット

ニモニック内容
ADCキャリーフラグを伴う加算を行います。
ANDアキュムレータとメモリの値との間の論理積を計算します。
ASLメモリの値を算術左シフトします。
BCCキャリーフラグがクリアされている場合に分岐します。
BCSキャリーフラグがセットされている場合に分岐します。
BEQゼロフラグがセットされている場合に分岐します。
BITメモリビットのテストを行います。
BMIネガティブフラグがセットされている場合に分岐します。
BNEゼロフラグがクリアされている場合に分岐します。
BPLネガティブフラグがクリアされている場合に分岐します。
BRA無条件分岐を行います。
BRK現在の処理を中断し、ソフトウェア割り込みを実行します。
BRL無条件分岐を行います。
BVCオーバーフローフラグがクリアされている場合に分岐します。
BVSオーバーフローフラグがセットされている場合に分岐します。
CLCキャリーフラグをクリアします。
CLDデシマルフラグをクリアします。
CLI割込禁止フラグをクリアします。
CLVオーバーフローフラグをクリアします。
CMPアキュムレータとメモリの値を比較します。
COP現在の処理を中断し、COPベクタによるソフトウェア割り込みを実行します。
CPXインデクスレジスタXとメモリの値を比較します。
CPYインデクスレジスタYとメモリの値を比較します。
DECメモリの値をデクリメントします。
DEXインデクスレジスタXの値をデクリメントします。
DEYインデクスレジスタYの値をデクリメントします。
EORアキュムレータとメモリの間で排他的論理和を計算します。
INCメモリの値をインクリメントします。
INXインデクスレジスタXの値をインクリメントします。
INYインデクスレジスタYの値をインクリメントします。
JML指定されたアドレスへ処理を移します。
JMP指定されたアドレスへ処理を移します。
JSL関数呼び出しを行います。
JSR関数呼び出しを行います。
LDAアキュムレータに値を読み込みます。
LDXインデクスレジスタXに値を読み込みます。
LDYインデクスレジスタYに値を読み込みます。
LSRメモリの値を論理右シフトします。
MVPブロック移動を行います。
MVNブロック移動を行います。
NOP何も実行しません。
ORAアキュムレータとメモリの値の間で論理和を計算します。
PEA絶対アドレスをスタックへプッシュします。
PEIダイレクトページ上の16ビット値(間接アドレス)をスタックへプッシュします。
PERプログラムカウンタ相対で計算したアドレスをスタックへプッシュします。
PHAアキュムレータの内容をスタックへプッシュします。
PHBデータバンクレジスタの内容をスタックへプッシュします。
PHDダイレクトページレジスタの内容をスタックへプッシュします。
PHKプログラムバンクレジスタの内容をスタックへプッシュします。
PHPステータスレジスタの内容をスタックへプッシュします。
PHXインデクスレジスタXの内容をスタックへプッシュします。
PHYインデクスレジスタYの内容をスタックへプッシュします。
PLAアキュムレータへスタックの内容をポップします。
PLBデータバンクレジスタへスタックの内容をポップします。
PLDダイレクトページレジスタへスタックの内容をポップします。
PLPステータスレジスタへスタックの内容をポップします。
PLXインデクスレジスタXへスタックの内容をポップします。
PLYインデクスレジスタYへスタックの内容をポップします。
REP指定したステータスフラグをリセットします。
ROLメモリの値を左回転シフトします。
RORメモリの値を右回転シフトします。
RTI割り込みから復帰し、中断していた処理を再開します。
RTL関数から復帰します。
RTS関数から復帰します。
SBCアキュムレータからメモリの内容を減算します。
SECキャリーフラグをセットします。
SEDデシマルフラグをセットします。
SEI割込禁止フラグをセットします。
SEP指定したステータスフラグをセットします。
STAアキュムレータの内容をメモリへ書き込みます。
STPプロセッサを停止します。
STXインデクスレジスタXの内容をメモリへ書き込みます。
STYインデクスレジスタYの内容をメモリへ書き込みます。
STZゼロバイトをメモリへ書き込みます。
TAXアキュムレータの内容をインデクスレジスタXへ転送します。
TAYアキュムレータの内容をインデクスレジスタYへ転送します。
TCDアキュムレータの内容をダイレクトページレジスタへ転送します。
TCSアキュムレータの内容をスタックポインタへ転送します。
TDCダイレクトページレジスタの内容をアキュムレータへ転送します。
TRBメモリビットのテストおよびリセットを行います。
TSBメモリビットのテストおよびセットを行います。
TSCスタックポインタの内容をアキュムレータへ転送します。
TSXスタックポインタの内容をインデクスレジスタXへ転送します。
TXAインデクスレジスタXの内容をアキュムレータへ転送します。
TXSインデクスレジスタXの内容をスタックポインタへ転送します。
TXYインデクスレジスタXの内容をインデクスレジスタYへ転送します。
TYAインデクスレジスタYの内容をアキュムレータへ転送します。
TYXインデクスレジスタYの内容をインデクスレジスタXへ転送します。
WAI現在の処理を中断して割込処理が発生するまで待機します。
WDM将来のための予約
XBAアキュムレータの上位バイトと下位バイトをスワップします。
XCEキャリーフラグとエミュレーションフラグをスワップします。