命令集
命令集です 自分が使いやすいように書いたのであなたが使いやすくはないと思います
まだ本格的なプログラムなんか組んだことないような初心者が作ったので間違いor説明不足などがあったら指摘してください
よく使う基本命令
命令 | 説明 | 例 |
ST* | *にはA,X,Y *に指定した値をセット |
STA #$10
|
LD* | *にはA,X,Y 指定したアドレスに*をセット STZは指定したアドレスに0をセットできる |
LDA $1490
|
T+- | +と-はA,X,Y +に-をコピー 他にもC,D,Sもあるが基本使わないので略 値は指定しない | TAX |
PH* | *にはA,X,Y *の値をPUSH>>0 いろいろあるが基本使(ry 値は指定しない | PHA |
PL* |
*にはA,X,Y *にPULL>>0 いろいろあるが基本使(ry 値は指定しない |
PLA |
IN* | *にはA,X,Y,C *の値を1増加 *にCを使うと指定したアドレスの値を1増やす それ以外は値を指定しない ちなみに繰り上がると00になる |
INC $0F48 |
DE* | *にはA,X,Y,C *の値を1減少 *にCを使うと指定したアドレスの値を1減らす それ以外は値を指定しない ちなみに繰り下がるとFFになる |
DEC $0F48 |
ADC |
ADC #$〇〇 (A + 指定した数)をAに代入 使う前にCLCを実行すること(実行しないと結果の値が不安定になる)>>1
ADC $(アドレス) (A + 指定した数)を指定したアドレスに代入 使う前にCLCを実行すること
|
ADC $0F48 |
SBC |
SBC #$〇〇 (A - 指定した数)をAに代入 使う前にSECを実行すること(実行しないと結果の値が不安定になる)>>1
SBC $(アドレス) (A - 指定した数)を指定したアドレスに代入 使う前にSECを実行すること
|
SBC $0F48 |
CM* | *にはP,X,Y PはAのことだがなぜかP 指定した値(=オペランド)といろいろ比較してフラグを操作する *がX,Yの時は#$〇〇しか使えない | CMP |
BEQ | CM*の結果、 *=オペランドなら指定した場所に移動 or ゼロフラグが1なら指定(ry |
BEQ RETURN |
BNE | CM*の結果、 *≠オペランドなら指定した場所に移動 or ゼロフラグが0なら指定(ry | BNE RETURN |
BCS | CM*の結果、 *≧オペランドなら指定した場所に移動 or キャリーフラグが1なら指定(ry |
BCS RETURN |
BCC | CM*の結果、 *<オペランドなら指定した場所に移動 or キャリーフラグが0なら指定(ry |
BCC RETURN |
BMI | ネガティブフラグが1の時指定した場所まで移動します たぶん使わないだろう | BMI NEXT |
BPL | ネガティブフラグが0の時指定した場所まで移動します たぶん使わないだろう | BPL NEXT |
BVS | オーバーフローフラグが1の時指定した場所まで移動します 一生使わないだろう | BVS NEXT |
BVC | オーバーフローフラグが0の時指定した場所まで移動します 一生使わないだろう | BVC NEXT |
BRA |
無条件に指定した場所に移動
なお、Bシリーズはジャンプできる距離が少ないで、シャンプ距離が40行を超えたら、JSRを近くにおいてそこにジャンプしよう
ジャンプ距離少しだけだな〜って思ったらBRAを使うと容量が削減できるよ
|
BRA RETURN |
JSR | JSRは$****と$****.xだけ使える ジャンプ行数がかなりあるので、1つのプログラム内ではジャンプできない危険は殆ど無い | JSR RETURN |
JSL | 基本、ルーチンを呼び出すのに使う $******だけが使える | JSL $01B7B3 |
RTS | JSRで呼ばれたところに戻る スプライトやブロック等は、これがスプライト処理の終了と見ていい | RTS |
RTL | JSLで呼ばれたとことに戻る 基本使わない 専用ルーチンを作るような人はこんなの全く参考にしないだろう | RTL |
余計な説明
指定した数とは、#$〇〇 または $(アドレス)の中の値 のこと
命令の$(アドレス)指定は基本、?$** ?$**** ?$****,x $****,y の3つはすべて使えます 詳しくは鬼畜王様のペーシをご覧下さい
指定した場所=ラベルと思って大丈夫です
論理演算
AND・・・2進数で考えたAと指定した値を各桁比較し、両方とも1だった場合のみ1、その他は0になります。通称論理積
例
*具体的な使用方法
ORA・・・2進数で考えたAと指定した値を各桁比較し、両方とも0だった場合のみ0、その他は1になります。通称論理和 あと電卓上のOR
*具体的な使用方法 (思い浮かばねえwすいませんw)
*具体的な使用方法
3/19 とっても見づらいのでとりあえずカラフルにしてみた 満足ww
3/20 適当に改良 暇つぶし程度
4/3 SB*では繰り下がった時キャリーフラグが1になると嘘をついていた すいません