level 1
//-------------------------------------------------------------------- //指令 var optemp = opindex; function _temp(arg1,arg2) { R0 = null; } code.push(_temp); opstr["temp"] = optemp; var opadd = ++opindex; //+ function _add(arg1,arg2) { R0 = arg1+arg2; } code.push(_add); opstr["add"] = opindex; var opsub = ++opindex; //- function _sub(arg1,arg2) { R0 = arg1-arg2; } code.push(_sub); opstr["sub"] = opindex; var opdiv = ++opindex; // '/' function _div(arg1,arg2) { R0 = arg1/arg2; } code.push(_div); opstr["div"] = opindex; var opmul = ++opindex; //* function _mul(arg1,arg2) { R0 = arg1*arg2; } code.push(_mul); opstr["mul"] = opindex; var opmod = ++opindex; //% function _mod(arg1,arg2) { R0 = arg1%arg2; } code.push(_mod); opstr["mod"] = opindex; var opsand = ++opindex; //& function _sand(arg1,arg2) { R0 = arg1&arg2; } code.push(_sand); opstr["sand"] = opindex; var opsxor = ++opindex; //^ function _sxor(arg1,arg2) { R0 = arg1^arg2; } code.push(_sxor); opstr["sxor"] = opindex; var opsor = ++opindex; //| function _sor(arg1,arg2) { R0 = arg1|arg2; } code.push(_sor); opstr["sor"] = opindex; var opand = ++opindex; //&& function _and(arg1,arg2) { R0 = arg1&&arg2; } code.push(_and); opstr["and"] = opindex; var opor = ++opindex; //|| function _or(arg1,arg2) { R0 = arg1||arg2; } code.push(_or); opstr["or"] = opindex; //一元运算 var opinc = ++opindex; //++ function _inc(arg1) { R0 = ++arg1; } code.push(_inc); opstr["inc"] = opindex; var opdec = ++opindex; //-- function _dec(arg1) { R0 = --arg1; } code.push(_dec); opstr["dec"] = opindex; //- 负数 不做为运算对待 var oprev = ++opindex; //~ function _rev(arg1) { R0 = ~arg1; } code.push(_rev); opstr["rev"] = opindex; var opnot = ++opindex; //! function _not(arg1) { R0 = !arg1; } code.push(_not); opstr["not"] = opindex; //比较运算 var opless = ++opindex; //< function _less(arg1,arg2) { R0 = arg1
function _big(arg1,arg2) { R0 = arg1>arg2; } code.push(_big); opstr["big"] = opindex; var opbigA = ++opindex; //>= function _bigA(arg1,arg2) { R0 = arg1>=arg2; } code.push(_bigA); opstr["bigA"] = opindex; var opequal = ++opindex; //== ( = ) function _equal(arg1,arg2) { R0 = arg1==arg2; } code.push(_equal); opstr["equal"] = opindex; var opunequal = ++opindex; //!= ( <> ) function _unequal(arg1,arg2) { R0 = arg1!=arg2; } code.push(_unequal); opstr["unequal"] = opindex; //------------------------------ 数据传送指令 var oppush = ++opindex; //push function _push(arg1) { this.address = 1; switch(arg1) { case "R0": stack.push(R0); break; case "R1": stack.push(R1); break; case "R2": stack.push(R2); break; case "R3": stack.push(R3);
2008年06月20日 08点06分