命令 | 動作 (ジャンプ動作以外のときは、動作後Qに1を加算すること) |
> | P=P+1 |
< | P=P-1 |
+ | @(P)=@(P)+1 |
- | @(P)=@(P)-1 |
. | @(P)の値を、ASCIIコードと見なして端末装置に1文字出力 |
, | 端末装置からの1文字入力を、ASCIIコードとして@(P)に書込 |
[ | @(P)=0のときのみ、右方向の対応する"]"命令の次にジャンプ(Qを変更) |
] | @(P)≠0のときのみ、左方向の対応する"["命令の次にジャンプ(Qを変更) |
アドレス (10進数) |
内容 |
0 ~263 |
作業領域、他 |
264 ~2049 |
マイクロBASICプログラム |
2048 ~3839 |
配列@(0)~@(895) |
3840 ~4095 |
マイコンの内部レジスタ |
RAMアドレス | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 |
データ | 1 | 0 | 空白 | A | = | 1 | 2 | CR | 2 | 0 | 空白 | ? | = | A | CR |
RAMアドレス | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 |
配列 | @(1156) | @(1157) | @(1158) | @(1159) | @(1160) | @(1161) | @(1162) | @(1163) | ||||||||
データ | 1 | 0 | 空白 | A | = | 1 | 2 | CR | 2 | 0 | 空白 | ? | = | A | CR | (不定値) |
行番号 | 機能名 | 処理 |
100~ | スタート処理 | Brainfuckと表示、データメモリを初期化 |
200~ | プログラム先頭検索 | 行番号9999を検索、変数Qにアドレスをセット |
400~ | 命令読込・実行 | 変数Qの示す命令をフェッチ、実行を、終了(Q=&)まで繰り返す |
1000~ | 命令( [ )検索(サブルーチン) | 対応する命令( [ )を右方向へ検索、変数Qにアドレスをセット |
1100~ | 命令( ] )検索(サブルーチン) | 対応する命令( ] )を左方向へ検索、変数Qにアドレスをセット |
1200~ | 1バイト読出(サブルーチン) | 変数Qが示すRAMアドレスのデータを変数Dにセット |
9999~ | Brainfuckプログラム | サンプルプログラムとして入力文字の次のコードの文字を出力 |
命令 | ASCIIコード |
> | 62 |
< | 60 |
+ | 43 |
- | 45 |
. | 46 |
, | 44 |
[ | 91 |
] | 93 |
機能名 | 行番号 (変更前) |
行番号 (変更後) |
スタート処理 | 100~ | 10~,2100~ |
プログラム先頭検索 | 200~ | 2200~ |
命令読込・実行 | 400~ | 400~ |
命令( [ )検索(サブルーチン) | 1000~ | 200~ |
命令( ] )検索(サブルーチン) | 1100~ | 300~ |
1バイト読出(サブルーチン) | 1200~ | 100~ |
Brainfuckプログラム | 9999~ | 9999~ |
■マイクロBASICによる数値計算とゲーム