/// <summary> /// 比较指令,比较两个寄存器或常量表里的值,分别由b和c指定,如果比较结果和a操作数相同,则跳过下一条指令。比较指令不更改寄存器状态 /// </summary> /// <param name="i"></param> public void Compare(Instruction i, TokenType opType) { int a = 0, b = 0, c = 0; i.ABC(ref a, ref b, ref c); luaState.GetRK(b + 1); luaState.GetRK(c + c); var result = luaState.Compare(-2, -1, opType); bool aBool = false; if (a == 1) { aBool = true; } if ((bool)result.OValue == aBool) { luaState.AddPC(); } }