0
说,我有一个指令集的一个非常简单的模型:迭代一个简单的指令的所有可能设置
opcode 0, arg1[0-1]
ocode 1, arg1[0-2], arg2[0-1]
所以,我正在寻找的是与它建立无限复杂的程序的方式。
第一程序是:
0,0
next is,
0,1
then
0,0
1,0,0
then
0,0
1,1,0
etc
使得在给定由下式定义的任意的指令集:
class Instruction
{
public int opcode;
public int[] argLimits; //the maximum value of each argument, and number of arguments
}
Instruction[] allInstructions;
可以生成给定的前面的程序的下一个程序。 如:ExecutableInstruction[] GetNextProgram(ExecutableInstruction[] previous, Instruction[] instructionSet);
该参数的值限制将始终[0-N] 的参数都是必需的 - 如果操作码3个参数,它们都是必需的。
我知道如何做这种事情时,参数的数量是固定的,但是当每个操作码可以有N个参数,其中每个操作码的每个参数可以是值0-n,我不知道在哪里开始。