/// <summary> /// 将常量表的某个常量加载到指定寄存器,寄存器索引由a指定,常量表索引由b指定 /// </summary> /// <param name="i"></param> public void LoadK(Instruction i) { int a = 0, bx = 0; i.ABX(ref a, ref bx); a += 1; luaState.GetConstVar(bx); luaState.Replace(a); }
/// <summary> /// 将一个函数原型实例化为一个closure对象,然后放入指定寄存器内。由操作数A指定,函数原型由bx操作数指定 /// </summary> /// <param name="i"></param> public void Closure(Instruction i) { int a = 0, bx = 0; i.ABX(ref a, ref bx); a += 1; luaState.LoadPrototype(bx); luaState.Replace(a); }
/// <summary> /// 使用iabx模式指令,Ax操作数使用26位bit编码,最大可以表示67108864索引号 /// </summary> /// <param name="i"></param> public void LoadKX(Instruction i) { int a = 0, bx = 0; i.ABX(ref a, ref bx); a += 1; int ax = new Instruction(luaState.Fetch()).AX(); luaState.GetConstVar(ax); luaState.Replace(a); }