* 全自動プログラム生成の夢#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。・・・これだったらすぐに見つけられそう。

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS