* 全自動プログラム生成の夢#1 -(by [[K]], 2020.02.21) ** (1) 命令セット案 -探索しやすくするためには、[命令コード、パラメータ、パラメータ・・・]みたいな形式に統一していたほうがいい。 -めんどくさいからOSECPU-VMの仕様をベースにでもするかな。 --ここをみた: http://osecpu.osask.jp/wiki/?page0072 |01|LABEL|imm| |01|LABEL|imm,dmy| |10|OR |r0,r1/imm| |11|XOR |r0,r1/imm| |12|AND |r0,r1/imm| |14|ADD |r0,r1/imm| |15|SUB |r0,r1/imm| |16|MUL |r0,r1/imm| |17|LET |r0,r1/imm| |20|CMPJE |r0,r1/imm,rel| |21|CMPJNE |r0,r1/imm,rel| |22|CMPJL |r0,r1/imm,rel| |23|CMPJGE |r0,r1/imm,rel| |24|CMPJLE |r0,r1/imm,rel| |25|CMPJG |r0,r1/imm,rel| --r1/immは、80-BFがレジスタ番号(64本)、それ以外は符号付き整数 -ほほう、これだけあれば演算はできるわけかー。配列がないけど。 --まあLMEMとSMEM系の命令を作れば配列もサポートできなくはないけど、最初はなしで考えよう。 --あとはPRINT(05)があればよさそうだな。 -サンプル: 1から10までを出力するプログラム LET A=1 PRINT A ADD A,1 CMPJLE A,10,-1(ひとつ前の命令が0) -命令が14通り、変数は1つ、合計4命令、定数は1か10。ブランチは+-2。・・・これだったらすぐに見つけられそう。