diff --git a/modules/pcjs/bin/x86gen.js b/modules/pcjs/bin/x86gen.js index 19e468ac4..26dbc132a 100644 --- a/modules/pcjs/bin/x86gen.js +++ b/modules/pcjs/bin/x86gen.js @@ -57,10 +57,11 @@ try { * See p. 3-41 of "The 8086 Book" for more details. */ +var f16Only = true; var aDst = ["Mem", "Reg"]; var aSize = ["Byte", "Word"]; var aOpPrefix = ["B", "W"]; -var aAddrPrefix = ["", "32"]; +var aAddrPrefix = [f16Only? "" : "16", "32"]; var aDisp = ["8", "16"]; /* @@ -215,12 +216,17 @@ else { var sOpMods, sOpMod, sContainer; print('"use strict";\n'); - print("var X86ModB = {};"); - print("var X86ModW = {};"); - print("var X86ModB32 = {};"); - print("var X86ModW32 = {};\n"); + if (f16Only) { + print("var X86ModB = {};"); + print("var X86ModW = {};\n"); + } else { + print("var X86ModB16 = {};"); + print("var X86ModW16 = {};"); + print("var X86ModB32 = {};"); + print("var X86ModW32 = {};\n"); + } - for (var a = 0; a <= 1 && !sError; a++) { + for (var a = 0; a <= (f16Only? 0 : 1) && !sError; a++) { for (w = 0; w <= 1 && !sError; w++) { @@ -259,13 +265,14 @@ else { } } - sContainer = "X86ModSIB" + ".aOpModSIB"; - - print(sContainer + " = ["); - for (var sib = 0x00; sib <= 0xff && !sError; sib++) { - genSIB(sib); + if (!f16Only) { + sContainer = "X86ModSIB" + ".aOpModSIB"; + print(sContainer + " = ["); + for (var sib = 0x00; sib <= 0xff && !sError; sib++) { + genSIB(sib); + } + print("];\n"); } - print("];\n"); if (sEAFuncs) { print("var X86Mods = {\n" + sEAFuncs + "};\n"); @@ -329,26 +336,26 @@ function genMode(a, d, w, mrm, sGroup, sRO) { sRegBTLo = "this.backTrack.btiBL"; break; case 4: - sRegGet = "(this.regEAX >> 8) & 0xff"; - sRegSet = "this.regEAX = (this.regEAX & ~0xff00) | "; + sRegGet = f16Only? "this.regEAX >> 8" : "(this.regEAX >> 8) & 0xff"; + sRegSet = f16Only? "this.regEAX = (this.regEAX & 0xff) | " : "this.regEAX = (this.regEAX & ~0xff00) | "; sRegSetEnd = " << 8"; sRegBTLo = "this.backTrack.btiAH"; break; case 5: - sRegGet = "(this.regECX >> 8) & 0xff"; - sRegSet = "this.regECX = (this.regECX & ~0xff00) | "; + sRegGet = f16Only? "this.regECX >> 8" : "(this.regECX >> 8) & 0xff"; + sRegSet = f16Only? "this.regECX = (this.regECX & 0xff) | " : "this.regECX = (this.regECX & ~0xff00) | "; sRegSetEnd = " << 8"; sRegBTLo = "this.backTrack.btiCH"; break; case 6: - sRegGet = "(this.regEDX >> 8) & 0xff"; - sRegSet = "this.regEDX = (this.regEDX & ~0xff00) | "; + sRegGet = f16Only? "this.regEDX >> 8" : "(this.regEDX >> 8) & 0xff"; + sRegSet = f16Only? "this.regEDX = (this.regEDX & 0xff) | " : "this.regEDX = (this.regEDX & ~0xff00) | "; sRegSetEnd = " << 8"; sRegBTLo = "this.backTrack.btiDH"; break; case 7: - sRegGet = "(this.regEBX >> 8) & 0xff"; - sRegSet = "this.regEBX = (this.regEBX & ~0xff00) | "; + sRegGet = f16Only? "this.regEBX >> 8" : "(this.regEBX >> 8) & 0xff"; + sRegSet = f16Only? "this.regEBX = (this.regEBX & 0xff) | " : "this.regEBX = (this.regEBX & ~0xff00) | "; sRegSetEnd = " << 8"; sRegBTLo = "this.backTrack.btiBH"; break; @@ -360,50 +367,50 @@ function genMode(a, d, w, mrm, sGroup, sRO) { else { switch (reg) { case 0: - sRegGet = "this.regEAX & this.dataMask"; - sRegSet = "this.regEAX = (this.regEAX & ~this.dataMask) | "; + sRegGet = f16Only? "this.regEAX" : "this.regEAX & this.dataMask"; + sRegSet = f16Only? "" : "this.regEAX = (this.regEAX & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiAL"; sRegBTHi = "this.backTrack.btiAH"; break; case 1: - sRegGet = "this.regECX & this.dataMask"; - sRegSet = "this.regECX = (this.regECX & ~this.dataMask) | "; + sRegGet = f16Only? "this.regECX" : "this.regECX & this.dataMask"; + sRegSet = f16Only? "" : "this.regECX = (this.regECX & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiCL"; sRegBTHi = "this.backTrack.btiCH"; break; case 2: - sRegGet = "this.regEDX & this.dataMask"; - sRegSet = "this.regEDX = (this.regEDX & ~this.dataMask) | "; + sRegGet = f16Only? "this.regEDX" : "this.regEDX & this.dataMask"; + sRegSet = f16Only? "" : "this.regEDX = (this.regEDX & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiDL"; sRegBTHi = "this.backTrack.btiDH"; break; case 3: - sRegGet = "this.regEBX & this.dataMask"; - sRegSet = "this.regEBX = (this.regEBX & ~this.dataMask) | "; + sRegGet = f16Only? "this.regEBX" : "this.regEBX & this.dataMask"; + sRegSet = f16Only? "" : "this.regEBX = (this.regEBX & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiBL"; sRegBTHi = "this.backTrack.btiBH"; break; case 4: - sRegGet = "this.regESP & this.dataMask"; - sRegSet = "this.regESP = (this.regESP & ~this.dataMask) | "; + sRegGet = f16Only? "this.regESP" : "this.regESP & this.dataMask"; + sRegSet = f16Only? "" : "this.regESP = (this.regESP & ~this.dataMask) | "; sRegBTLo = "X86.BACKTRACK.SP_LO"; sRegBTHi = "X86.BACKTRACK.SP_HI"; break; case 5: - sRegGet = "this.regEBP & this.dataMask"; - sRegSet = "this.regEBP = (this.regEBP & ~this.dataMask) | "; + sRegGet = f16Only? "this.regEBP" : "this.regEBP & this.dataMask"; + sRegSet = f16Only? "" : "this.regEBP = (this.regEBP & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiBPLo"; sRegBTHi = "this.backTrack.btiBPHi"; break; case 6: - sRegGet = "this.regESI & this.dataMask"; - sRegSet = "this.regESI = (this.regESI & ~this.dataMask) | "; + sRegGet = f16Only? "this.regESI" : "this.regESI & this.dataMask"; + sRegSet = f16Only? "" : "this.regESI = (this.regESI & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiSILo"; sRegBTHi = "this.backTrack.btiSIHi"; break; case 7: - sRegGet = "this.regEDI & this.dataMask"; - sRegSet = "this.regEDI = (this.regEDI & ~this.dataMask) | "; + sRegGet = f16Only? "this.regEDI" : "this.regEDI & this.dataMask"; + sRegSet = f16Only? "" : "this.regEDI = (this.regEDI & ~this.dataMask) | "; sRegBTLo = "this.backTrack.btiDILo"; sRegBTHi = "this.backTrack.btiDIHi"; break; @@ -604,26 +611,26 @@ function genMode(a, d, w, mrm, sGroup, sRO) { sModRegBTLo = "this.backTrack.btiBL"; break; case 4: - sModRegGet = "(this.regEAX >> 8) & 0xff"; - sModRegSet = "this.regEAX = (this.regEAX & ~0xff00) | "; + sModRegGet = f16Only? "(this.regEAX >> 8)" : "(this.regEAX >> 8) & 0xff"; + sModRegSet = f16Only? "this.regEAX = (this.regEAX & 0xff) | " : "this.regEAX = (this.regEAX & ~0xff00) | "; sModRegSetEnd = " << 8"; sModRegBTLo = "this.backTrack.btiAH"; break; case 5: - sModRegGet = "(this.regECX >> 8) & 0xff"; - sModRegSet = "this.regECX = (this.regECX & ~0xff00) | "; + sModRegGet = f16Only? "(this.regECX >> 8)" : "(this.regECX >> 8) & 0xff"; + sModRegSet = f16Only? "this.regECX = (this.regECX & 0xff) | " : "this.regECX = (this.regECX & ~0xff00) | "; sModRegSetEnd = " << 8"; sModRegBTLo = "this.backTrack.btiCH"; break; case 6: - sModRegGet = "(this.regEDX >> 8) & 0xff"; - sModRegSet = "this.regEDX = (this.regEDX & ~0xff00) | "; + sModRegGet = f16Only? "(this.regEDX >> 8)" : "(this.regEDX >> 8) & 0xff"; + sModRegSet = f16Only? "this.regEDX = (this.regEDX & 0xff) | " : "this.regEDX = (this.regEDX & ~0xff00) | "; sModRegSetEnd = " << 8"; sModRegBTLo = "this.backTrack.btiDH"; break; case 7: - sModRegGet = "(this.regEBX >> 8) & 0xff"; - sModRegSet = "this.regEBX = (this.regEBX & ~0xff00) | "; + sModRegGet = f16Only? "(this.regEBX >> 8)" : "(this.regEBX >> 8) & 0xff"; + sModRegSet = f16Only? "this.regEBX = (this.regEBX & 0xff) | " : "this.regEBX = (this.regEBX & ~0xff00) | "; sModRegSetEnd = " << 8"; sModRegBTLo = "this.backTrack.btiBH"; break; @@ -635,50 +642,50 @@ function genMode(a, d, w, mrm, sGroup, sRO) { else { switch (r_m) { case 0: - sModRegGet = "this.regEAX & this.dataMask"; - sModRegSet = "this.regEAX = (this.regEAX & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regEAX" : "this.regEAX & this.dataMask"; + sModRegSet = f16Only? "" : "this.regEAX = (this.regEAX & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiAL"; sModRegBTHi = "this.backTrack.btiAH"; break; case 1: - sModRegGet = "this.regECX & this.dataMask"; - sModRegSet = "this.regECX = (this.regECX & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regECX" : "this.regECX & this.dataMask"; + sModRegSet = f16Only? "" : "this.regECX = (this.regECX & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiCL"; sModRegBTHi = "this.backTrack.btiCH"; break; case 2: - sModRegGet = "this.regEDX & this.dataMask"; - sModRegSet = "this.regEDX = (this.regEDX & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regEDX" : "this.regEDX & this.dataMask"; + sModRegSet = f16Only? "" : "this.regEDX = (this.regEDX & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiDL"; sModRegBTHi = "this.backTrack.btiDH"; break; case 3: - sModRegGet = "this.regEBX & this.dataMask"; - sModRegSet = "this.regEBX = (this.regEBX & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regEBX" : "this.regEBX & this.dataMask"; + sModRegSet = f16Only? "" : "this.regEBX = (this.regEBX & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiBL"; sModRegBTHi = "this.backTrack.btiBH"; break; case 4: - sModRegGet = "this.regESP & this.dataMask"; - sModRegSet = "this.regESP = (this.regESP & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regESP" : "this.regESP & this.dataMask"; + sModRegSet = f16Only? "" : "this.regESP = (this.regESP & ~this.dataMask) | "; sModRegBTLo = "X86.BACKTRACK.SP_LO"; sModRegBTHi = "X86.BACKTRACK.SP_HI"; break; case 5: - sModRegGet = "this.regEBP & this.dataMask"; - sModRegSet = "this.regEBP = (this.regEBP & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regEBP" : "this.regEBP & this.dataMask"; + sModRegSet = f16Only? "" : "this.regEBP = (this.regEBP & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiBPLo"; sModRegBTHi = "this.backTrack.btiBPHi"; break; case 6: - sModRegGet = "this.regESI & this.dataMask"; - sModRegSet = "this.regESI = (this.regESI & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regESI" : "this.regESI & this.dataMask"; + sModRegSet = f16Only? "" : "this.regESI = (this.regESI & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiSILo"; sModRegBTHi = "this.backTrack.btiSIHi"; break; case 7: - sModRegGet = "this.regEDI & this.dataMask"; - sModRegSet = "this.regEDI = (this.regEDI & ~this.dataMask) | "; + sModRegGet = f16Only? "this.regEDI" : "this.regEDI & this.dataMask"; + sModRegSet = f16Only? "" : "this.regEDI = (this.regEDI & ~this.dataMask) | "; sModRegBTLo = "this.backTrack.btiDILo"; sModRegBTHi = "this.backTrack.btiDIHi"; break; diff --git a/modules/pcjs/lib/debugger.js b/modules/pcjs/lib/debugger.js index 4be23ce36..3016b7771 100644 --- a/modules/pcjs/lib/debugger.js +++ b/modules/pcjs/lib/debugger.js @@ -4746,7 +4746,7 @@ if (DEBUGGER) { if (this.cmp) this.cmp.reset(); return true; case "ver": - this.println((APPNAME || "PCjs") + " version " + APPVERSION + " (" + (I386? "80386" : "80286") + (COMPILED? ",RELEASE" : (DEBUG? ",DEBUG" : ",NODEBUG")) + (PREFETCH? ",PREFETCH" : ",NOPREFETCH") + (TYPEDARRAYS? ",TYPEDARRAYS" : (FATARRAYS? ",FATARRAYS" : ",LONGARRAYS")) + (BACKTRACK? ",BACKTRACK" : "") + ")"); + this.println((APPNAME || "PCjs") + " version " + APPVERSION + " (" + this.cpu.model + (COMPILED? ",RELEASE" : (DEBUG? ",DEBUG" : ",NODEBUG")) + (PREFETCH? ",PREFETCH" : ",NOPREFETCH") + (TYPEDARRAYS? ",TYPEDARRAYS" : (FATARRAYS? ",FATARRAYS" : ",LONGARRAYS")) + (BACKTRACK? ",BACKTRACK" : ",NOBACKTRACK") + ")"); return true; default: ch0 = sCmd.charAt(0); diff --git a/modules/pcjs/lib/memory.js b/modules/pcjs/lib/memory.js index ee10afb90..697067942 100644 --- a/modules/pcjs/lib/memory.js +++ b/modules/pcjs/lib/memory.js @@ -53,6 +53,7 @@ if (typeof module !== 'undefined') { var Component = require("../../shared/lib/component"); var Messages = require("./messages"); } + /** * @class DataView * @property {function(number,boolean):number} getUint8 @@ -63,6 +64,12 @@ if (typeof module !== 'undefined') { * @property {function(number,number,boolean)} setInt32 */ +var littleEndian = (function() { + var buffer = new ArrayBuffer(2); + new DataView(buffer).setUint16(0, 256, true); + return new Uint16Array(buffer)[0] === 256; +})(); + /** * Memory(addr, size, type, controller) * @@ -163,11 +170,14 @@ function Memory(addr, size, type, controller) this.buffer = new ArrayBuffer(size); this.dv = new DataView(this.buffer, 0, size); /* - * We could also use dv.getUint8() and dv.setUint8(), but using ab[] to get/set bytes - * in this.buffer is more convenient and presents no "endianness" issues. + * If littleEndian is true, we can use ab[], aw[] and adw[] directly; well, we can use them + * whenever the offset is a multiple of 1, 2 or 4, respectively. Otherwise, we must fallback to + * dv.getUint8()/dv.setUint8(), dv.getUint16()/dv.setUint16() and db.getInt32()/dv.setInt32(). */ this.ab = new Uint8Array(this.buffer, 0, size); - this.setAccess(Memory.afnTypedArray); + this.aw = new Uint16Array(this.buffer, 0, size >> 1); + this.adw = new Int32Array(this.buffer, 0, size >> 2); + this.setAccess(littleEndian? Memory.afnLittleEndian : Memory.afnBigEndian); } else { if (FATARRAYS) { this.ab = new Array(size); @@ -473,86 +483,199 @@ Memory.writeLongChecked = function writeLongChecked(off, l) }; /** - * readByteTypedArray(off) + * readByteBigEndian(off) * * @this {Memory} * @param {number} off * @return {number} */ -Memory.readByteTypedArray = function readByteTypedArray(off) +Memory.readByteBigEndian = function readByteBigEndian(off) { Component.assert(off >= 0 && off < this.size); return this.ab[off]; }; /** - * readShortTypedArray(off) + * readByteLittleEndian(off) * * @this {Memory} * @param {number} off * @return {number} */ -Memory.readShortTypedArray = function readShortTypedArray(off) +Memory.readByteLittleEndian = function readByteLittleEndian(off) +{ + Component.assert(off >= 0 && off < this.size); + return this.ab[off]; +}; + +/** + * readShortBigEndian(off) + * + * @this {Memory} + * @param {number} off + * @return {number} + */ +Memory.readShortBigEndian = function readShortBigEndian(off) { Component.assert(off >= 0 && off < this.size - 1); return this.dv.getUint16(off, true); }; /** - * readLongTypedArray(off) + * readShortLittleEndian(off) * * @this {Memory} * @param {number} off * @return {number} */ -Memory.readLongTypedArray = function readLongTypedArray(off) +Memory.readShortLittleEndian = function readShortLittleEndian(off) +{ + Component.assert(off >= 0 && off < this.size - 1); + /* + * TODO: It remains to be seen if there's any advantage to checking the offset + * for an aligned read vs. always reading the bytes separately; it seems a safe bet + * for longs, but it's less clear for shorts. + */ + return (off & 0x1)? (this.ab[off] | (this.ab[off+1] << 8)) : this.aw[off >> 1]; +}; + +/** + * readLongBigEndian(off) + * + * @this {Memory} + * @param {number} off + * @return {number} + */ +Memory.readLongBigEndian = function readLongBigEndian(off) { Component.assert(off >= 0 && off < this.size - 3); return this.dv.getInt32(off, true); }; /** - * writeByteTypedArray(off, b) + * readLongLittleEndian(off) + * + * @this {Memory} + * @param {number} off + * @return {number} + */ +Memory.readLongLittleEndian = function readLongLittleEndian(off) +{ + Component.assert(off >= 0 && off < this.size - 3); + /* + * TODO: It remains to be seen if there's any advantage to checking the offset + * for an aligned read vs. always reading the bytes separately; it seems a safe bet + * for longs, but it's less clear for shorts. + */ + return (off & 0x3)? (this.ab[off] | (this.ab[off+1] << 8) | (this.ab[off+2] << 16) | (this.ab[off+3] << 24)) : this.adw[off >> 2]; +}; + +/** + * writeByteBigEndian(off, b) * * @this {Memory} * @param {number} off * @param {number} b */ -Memory.writeByteTypedArray = function writeByteTypedArray(off, b) +Memory.writeByteBigEndian = function writeByteBigEndian(off, b) { - Component.assert(off >= 0 && off < this.size && (b & 0xff) == b); + Component.assert(off >= 0 && off < this.size); this.ab[off] = b; this.fDirty = true; }; /** - * writeShortTypedArray(off, w) + * writeByteLittleEndian(off, b) + * + * @this {Memory} + * @param {number} off + * @param {number} b + */ +Memory.writeByteLittleEndian = function writeByteLittleEndian(off, b) +{ + Component.assert(off >= 0 && off < this.size); + this.ab[off] = b; + this.fDirty = true; +}; + +/** + * writeShortBigEndian(off, w) * * @this {Memory} * @param {number} off * @param {number} w */ -Memory.writeShortTypedArray = function writeShortTypedArray(off, w) +Memory.writeShortBigEndian = function writeShortBigEndian(off, w) { - Component.assert(off >= 0 && off < this.size - 1 && (w & 0xffff) == w); + Component.assert(off >= 0 && off < this.size - 1); this.dv.setUint16(off, w, true); this.fDirty = true; }; /** - * writeLongTypedArray(off, l) + * writeShortLittleEndian(off, w) + * + * @this {Memory} + * @param {number} off + * @param {number} w + */ +Memory.writeShortLittleEndian = function writeShortLittleEndian(off, w) +{ + Component.assert(off >= 0 && off < this.size - 1); + /* + * TODO: It remains to be seen if there's any advantage to checking the offset + * for an aligned write vs. always writing the bytes separately; it seems a safe bet + * for longs, but it's less clear for shorts. + */ + if (off & 0x1) { + this.ab[off] = w; + this.ab[off+1] = w >> 8; + } else { + this.aw[off >> 1] = w; + } + this.fDirty = true; +}; + +/** + * writeLongBigEndian(off, l) * * @this {Memory} * @param {number} off * @param {number} l */ -Memory.writeLongTypedArray = function writeLongTypedArray(off, l) +Memory.writeLongBigEndian = function writeLongBigEndian(off, l) { Component.assert(off >= 0 && off < this.size - 3); this.dv.setInt32(off, l, true); this.fDirty = true; }; +/** + * writeLongLittleEndian(off, l) + * + * @this {Memory} + * @param {number} off + * @param {number} l + */ +Memory.writeLongLittleEndian = function writeLongLittleEndian(off, l) +{ + Component.assert(off >= 0 && off < this.size - 3); + /* + * TODO: It remains to be seen if there's any advantage to checking the offset + * for an aligned write vs. always writing the bytes separately; it seems a safe bet + * for longs, but it's less clear for shorts. + */ + if (off & 0x3) { + this.ab[off] = l; + this.ab[off+1] = (l >> 8); + this.ab[off+2] = (l >> 16); + this.ab[off+3] = (l >> 24); + } else { + this.adw[off >> 2] = l; + } + this.fDirty = true; +}; + /** * readBackTrackNone(off) * @@ -635,7 +758,8 @@ Memory.afnMemory = [Memory.readByteMemory, Memory.readShortMemory, Mem Memory.afnChecked = [Memory.readByteChecked, Memory.readShortChecked, Memory.readLongChecked, Memory.writeByteChecked, Memory.writeShortChecked, Memory.writeLongChecked]; if (TYPEDARRAYS) { - Memory.afnTypedArray = [Memory.readByteTypedArray, Memory.readShortTypedArray, Memory.readLongTypedArray, Memory.writeByteTypedArray, Memory.writeShortTypedArray, Memory.writeLongTypedArray]; + Memory.afnBigEndian = [Memory.readByteBigEndian, Memory.readShortBigEndian, Memory.readLongBigEndian, Memory.writeByteBigEndian, Memory.writeShortBigEndian, Memory.writeLongBigEndian]; + Memory.afnLittleEndian = [Memory.readByteLittleEndian, Memory.readShortLittleEndian, Memory.readLongLittleEndian, Memory.writeByteLittleEndian, Memory.writeShortLittleEndian, Memory.writeLongLittleEndian]; } Memory.prototype = { diff --git a/modules/pcjs/lib/x86cpu.js b/modules/pcjs/lib/x86cpu.js index 36ee41a87..6a70c16b3 100644 --- a/modules/pcjs/lib/x86cpu.js +++ b/modules/pcjs/lib/x86cpu.js @@ -52,6 +52,8 @@ if (typeof module !== 'undefined') { if (I386) { if (typeof module !== 'undefined') { + var X86ModB16 = require("./x86modb16"); + var X86ModW16 = require("./x86modw16"); var X86ModB32 = require("./x86modb32"); var X86ModW32 = require("./x86modw32"); var X86ModSIB = require("./x86modsib"); @@ -970,7 +972,6 @@ X86CPU.prototype.resetRegs = function() */ this.addrSize = this.segCS.addrSize; this.addrMask = this.segCS.addrMask; - /* * It's also worth noting that instructions that implicitly use the stack also rely on something called STACK size, * which is based on the BIG bit of the last descriptor loaded into SS; use the following segSS properties: @@ -986,7 +987,7 @@ X86CPU.prototype.resetRegs = function() * The memory dispatch tables; opMem refers to the active set, based on the current OPERAND size (dataSize), * which is based foremost on segCS.dataSize, but can also be overridden by an OPERAND size instruction prefix. */ - this.aaOpMem = new Array(5); + this.aaOpMem = []; this.aaOpMem[2] = { getWord: this.getShort.bind(this), setWord: this.setShort.bind(this) @@ -998,31 +999,43 @@ X86CPU.prototype.resetRegs = function() }; } this.opMem = this.aaOpMem[this.segCS.dataSize]; + this.setOpMod(); +}; - /* - * The ModRM dispatch tables; opMod refers to the active set, based on the current ADDRESS size (addrSize), - * which is based foremost on segCS.addrSize, but can also be overridden by an ADDRESS size instruction prefix. - */ - this.aaOpMod = new Array(5); - this.aaOpMod[2] = { - aOpModRegByte: X86ModB.aOpModReg, - aOpModMemByte: X86ModB.aOpModMem, - aOpModGrpByte: X86ModB.aOpModGrp, - aOpModRegWord: X86ModW.aOpModReg, - aOpModMemWord: X86ModW.aOpModMem, - aOpModGrpWord: X86ModW.aOpModGrp - }; - if (I386) { - this.aaOpMod[4] = { - aOpModRegByte: X86ModB32.aOpModReg, - aOpModMemByte: X86ModB32.aOpModMem, - aOpModGrpByte: X86ModB32.aOpModGrp, - aOpModRegWord: X86ModW32.aOpModReg, - aOpModMemWord: X86ModW32.aOpModMem, - aOpModGrpWord: X86ModW32.aOpModGrp - }; +/** + * setOpMod() + * + * Select the appropriate ModRM dispatch tables, based on the current ADDRESS size (addrSize), which + * is based foremost on segCS.addrSize, but can also be overridden by an ADDRESS size instruction prefix. + * + * @this {X86CPU} + */ +X86CPU.prototype.setOpMod = function() +{ + if (!I386) { + this.aOpModRegByte = X86ModB.aOpModReg; + this.aOpModMemByte = X86ModB.aOpModMem; + this.aOpModGrpByte = X86ModB.aOpModGrp; + this.aOpModRegWord = X86ModW.aOpModReg; + this.aOpModMemWord = X86ModW.aOpModMem; + this.aOpModGrpWord = X86ModW.aOpModGrp; + } else { + if (this.addrSize == 2) { + this.aOpModRegByte = X86ModB16.aOpModReg; + this.aOpModMemByte = X86ModB16.aOpModMem; + this.aOpModGrpByte = X86ModB16.aOpModGrp; + this.aOpModRegWord = X86ModW16.aOpModReg; + this.aOpModMemWord = X86ModW16.aOpModMem; + this.aOpModGrpWord = X86ModW16.aOpModGrp; + } else { + this.aOpModRegByte = X86ModB32.aOpModReg; + this.aOpModMemByte = X86ModB32.aOpModMem; + this.aOpModGrpByte = X86ModB32.aOpModGrp; + this.aOpModRegWord = X86ModW32.aOpModReg; + this.aOpModMemWord = X86ModW32.aOpModMem; + this.aOpModGrpWord = X86ModW32.aOpModGrp; + } } - this.opMod = this.aaOpMod[this.segCS.addrSize]; }; /** @@ -1378,7 +1391,7 @@ X86CPU.prototype.setES = function(sel) */ X86CPU.prototype.setIP = function(off) { - this.regLIP = this.segCS.base + (this.regEIP = off & this.addrMask); + this.regLIP = this.segCS.base + (this.regEIP = off & (I386? this.addrMask : 0xffff)); if (PREFETCH) this.flushPrefetch(this.regLIP); }; @@ -1429,7 +1442,7 @@ X86CPU.prototype.setCSIP = function(off, sel, fCall) */ X86CPU.prototype.advanceIP = function(inc) { - this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + inc) & this.addrMask); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + inc) & (I386? this.addrMask : 0xffff)); if (PREFETCH) this.advancePrefetch(inc); }; @@ -2026,9 +2039,9 @@ X86CPU.prototype.getEAByte = function(seg, off) X86CPU.prototype.getEAWord = function(seg, off) { this.segEA = seg; - this.regEA = seg.checkRead(this.offEA = off, this.dataSize-1); + this.regEA = seg.checkRead(this.offEA = off, (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2065,9 +2078,9 @@ X86CPU.prototype.modEAByte = function(seg, off) X86CPU.prototype.modEAWord = function(seg, off) { this.segEA = seg; - this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, this.dataSize-1); + this.regEAWrite = this.regEA = seg.checkRead(this.offEA = off, (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2086,7 +2099,7 @@ X86CPU.prototype.getEAByteData = function(off) { // return this.getEAByte(this.segData, off & this.addrMask); this.segEA = this.segData; - this.regEA = this.segData.checkRead(this.offEA = off & this.addrMask, 0); + this.regEA = this.segData.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), 0); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; var b = this.getByte(this.regEA); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo; @@ -2104,7 +2117,7 @@ X86CPU.prototype.getEAByteStack = function(off) { // return this.getEAByte(this.segStack, off & this.addrMask); this.segEA = this.segStack; - this.regEA = this.segStack.checkRead(this.offEA = off & this.addrMask, 0); + this.regEA = this.segStack.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), 0); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; var b = this.getByte(this.regEA); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo; @@ -2122,9 +2135,9 @@ X86CPU.prototype.getEAWordData = function(off) { // return this.getEAWord(this.segData, off & this.addrMask); this.segEA = this.segData; - this.regEA = this.segData.checkRead(this.offEA = off & this.addrMask, this.dataSize-1); + this.regEA = this.segData.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2143,9 +2156,9 @@ X86CPU.prototype.getEAWordStack = function(off) { // return this.getEAWord(this.segStack, off & this.addrMask); this.segEA = this.segStack; - this.regEA = this.segStack.checkRead(this.offEA = off & this.addrMask, this.dataSize-1); + this.regEA = this.segStack.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2164,7 +2177,7 @@ X86CPU.prototype.modEAByteData = function(off) { // return this.modEAByte(this.segData, off & this.addrMask); this.segEA = this.segData; - this.regEAWrite = this.regEA = this.segData.checkRead(this.offEA = off & this.addrMask, 0); + this.regEAWrite = this.regEA = this.segData.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), 0); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; var b = this.getByte(this.regEA); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo; @@ -2182,7 +2195,7 @@ X86CPU.prototype.modEAByteStack = function(off) { // return this.modEAByte(this.segStack, off & this.addrMask); this.segEA = this.segStack; - this.regEAWrite = this.regEA = this.segStack.checkRead(this.offEA = off & this.addrMask, 0); + this.regEAWrite = this.regEA = this.segStack.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), 0); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; var b = this.getByte(this.regEA); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiMemLo; @@ -2200,9 +2213,9 @@ X86CPU.prototype.modEAWordData = function(off) { // return this.modEAWord(this.segData, off & this.addrMask); this.segEA = this.segData; - this.regEAWrite = this.regEA = this.segData.checkRead(this.offEA = off & this.addrMask, this.dataSize-1); + this.regEAWrite = this.regEA = this.segData.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2221,9 +2234,9 @@ X86CPU.prototype.modEAWordStack = function(off) { // return this.modEAWord(this.segStack, off & this.addrMask); this.segEA = this.segStack; - this.regEAWrite = this.regEA = this.segStack.checkRead(this.offEA = off & this.addrMask, this.dataSize-1); + this.regEAWrite = this.regEA = this.segStack.checkRead(this.offEA = off & (I386? this.addrMask : 0xffff), (I386? this.dataSize-1 : 1)); if (this.opFlags & X86.OPFLAG.NOREAD) return 0; - var w = this.opMem.getWord(this.regEA); + var w = I386? this.opMem.getWord(this.regEA) : this.getShort(this.regEA); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiMemLo; this.backTrack.btiEAHi = this.backTrack.btiMemHi; @@ -2257,7 +2270,11 @@ X86CPU.prototype.setEAWord = function(w) this.backTrack.btiMemLo = this.backTrack.btiEALo; this.backTrack.btiMemHi = this.backTrack.btiEAHi; } - this.opMem.setWord(this.segEA.checkWrite(this.offEA, this.dataSize-1), w); + if (!I386) { + this.setShort(this.segEA.checkWrite(this.offEA, 1), w); + } else { + this.opMem.setWord(this.segEA.checkWrite(this.offEA, this.dataSize-1), w); + } }; /** @@ -2287,7 +2304,11 @@ X86CPU.prototype.getSOByte = function(seg, off) */ X86CPU.prototype.getSOWord = function(seg, off) { - return this.opMem.getWord(seg.checkRead(off, this.dataSize-1)); + if (!I386) { + return this.getShort(seg.checkRead(off, 1)); + } else { + return this.opMem.getWord(seg.checkRead(off, this.dataSize-1)); + } }; /** @@ -2317,7 +2338,11 @@ X86CPU.prototype.setSOByte = function(seg, off, b) */ X86CPU.prototype.setSOWord = function(seg, off, w) { - this.opMem.setWord(seg.checkWrite(off, this.dataSize-1), w); + if (!I386) { + this.setShort(seg.checkWrite(off, 1), w); + } else { + this.opMem.setWord(seg.checkWrite(off, this.dataSize-1), w); + } }; /** @@ -2460,7 +2485,7 @@ X86CPU.prototype.getIPByte = function() { var b = (PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP)); if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); - this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & this.addrMask); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & (I386? this.addrMask : 0xffff)); return b; }; @@ -2474,8 +2499,8 @@ X86CPU.prototype.getIPDisp = function() { var b = ((PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP)) << 24) >> 24; if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); - this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & this.addrMask); - return b & this.addrMask; + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & (I386? this.addrMask : 0xffff)); + return b & (I386? this.addrMask : 0xffff); }; /** @@ -2486,12 +2511,12 @@ X86CPU.prototype.getIPDisp = function() */ X86CPU.prototype.getIPWord = function() { - var w = (PREFETCH? this.getWordPrefetch(this.regLIP) : this.opMem.getWord(this.regLIP)); + var w = (PREFETCH? this.getWordPrefetch(this.regLIP) : (I386? this.opMem.getWord(this.regLIP) : this.getShort(this.regLIP))); if (BACKTRACK) { this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi); } - this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + this.dataSize) & this.addrMask); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + (I386? this.dataSize : 2)) & (I386? this.addrMask : 0xffff)); return w; }; @@ -2518,7 +2543,7 @@ X86CPU.prototype.getSIBAddr = function(mod) X86CPU.prototype.popWord = function() { var regESP = this.regESP; - this.regESP = (this.regESP + this.dataSize) & this.addrMask; + this.regESP = (this.regESP + (I386? this.dataSize : 2)) & (I386? this.addrMask : 0xffff); return this.getSOWord(this.segSS, regESP); }; @@ -2531,7 +2556,7 @@ X86CPU.prototype.popWord = function() X86CPU.prototype.pushWord = function(w) { this.assert((w & this.dataMask) == w); - this.setSOWord(this.segSS, (this.regESP = (this.regESP - this.dataSize) & this.addrMask), w); + this.setSOWord(this.segSS, (this.regESP = (this.regESP - (I386? this.dataSize : 2)) & (I386? this.addrMask : 0xffff)), w); }; /** @@ -2823,7 +2848,6 @@ X86CPU.prototype.stepCPU = function(nMinCycles) this.addrSize = this.segCS.addrSize; this.addrMask = this.segCS.addrMask; this.opMem = this.aaOpMem[this.dataSize]; - this.opMod = this.aaOpMod[this.addrSize]; } this.opPrefixes = this.opFlags & X86.OPFLAG.REPEAT; diff --git a/modules/pcjs/lib/x86modb.js b/modules/pcjs/lib/x86modb.js index 74ec8d8e6..ddd0aa8f9 100644 --- a/modules/pcjs/lib/x86modb.js +++ b/modules/pcjs/lib/x86modb.js @@ -430,8 +430,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte20(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -442,8 +442,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte21(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -454,8 +454,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte22(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -466,8 +466,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte23(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -478,8 +478,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte24(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -490,8 +490,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte25(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -502,8 +502,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte26(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesDisp; }, @@ -514,8 +514,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte27(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -526,8 +526,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte28(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -538,8 +538,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte29(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -550,8 +550,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2A(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -562,8 +562,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2B(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -574,8 +574,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2C(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -586,8 +586,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2D(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -598,8 +598,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2E(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesDisp; }, @@ -610,8 +610,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte2F(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -622,8 +622,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte30(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -634,8 +634,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte31(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -646,8 +646,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte32(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -658,8 +658,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte33(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -670,8 +670,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte34(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -682,8 +682,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte35(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -694,8 +694,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte36(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesDisp; }, @@ -706,8 +706,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte37(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -718,8 +718,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte38(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -730,8 +730,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte39(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -742,8 +742,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3A(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, @@ -754,8 +754,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3B(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, @@ -766,8 +766,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3C(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -778,8 +778,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3D(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -790,8 +790,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3E(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesDisp; }, @@ -802,8 +802,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte3F(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBase; }, @@ -1198,8 +1198,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte60(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1210,8 +1210,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte61(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1222,8 +1222,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte62(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1234,8 +1234,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte63(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1246,8 +1246,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte64(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1258,8 +1258,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte65(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1270,8 +1270,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte66(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1282,8 +1282,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte67(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1294,8 +1294,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte68(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1306,8 +1306,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte69(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1318,8 +1318,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6A(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1330,8 +1330,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6B(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1342,8 +1342,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6C(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1354,8 +1354,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6D(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1366,8 +1366,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6E(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1378,8 +1378,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte6F(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1390,8 +1390,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte70(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1402,8 +1402,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte71(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1414,8 +1414,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte72(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1426,8 +1426,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte73(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1438,8 +1438,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte74(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1450,8 +1450,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte75(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1462,8 +1462,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte76(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1474,8 +1474,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte77(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1486,8 +1486,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte78(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1498,8 +1498,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte79(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1510,8 +1510,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7A(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1522,8 +1522,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7B(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1534,8 +1534,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7C(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1546,8 +1546,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7D(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1558,8 +1558,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7E(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1570,8 +1570,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByte7F(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -1966,8 +1966,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA0(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -1978,8 +1978,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA1(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -1990,8 +1990,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA2(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2002,8 +2002,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA3(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2014,8 +2014,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA4(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2026,8 +2026,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA5(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2038,8 +2038,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA6(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2050,8 +2050,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA7(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2062,8 +2062,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA8(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2074,8 +2074,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteA9(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2086,8 +2086,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAA(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2098,8 +2098,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAB(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2110,8 +2110,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAC(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regESI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2122,8 +2122,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAD(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2134,8 +2134,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAE(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2146,8 +2146,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteAF(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2158,8 +2158,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB0(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2170,8 +2170,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB1(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2182,8 +2182,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB2(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2194,8 +2194,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB3(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2206,8 +2206,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB4(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2218,8 +2218,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB5(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2230,8 +2230,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB6(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2242,8 +2242,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB7(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2254,8 +2254,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB8(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2266,8 +2266,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteB9(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2278,8 +2278,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBA(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, @@ -2290,8 +2290,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBB(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, @@ -2302,8 +2302,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBC(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2314,8 +2314,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBD(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2326,8 +2326,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBE(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2338,8 +2338,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteBF(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, @@ -2393,7 +2393,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteC4(fn) { - var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH; }, @@ -2404,7 +2404,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteC5(fn) { - var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH; }, @@ -2415,7 +2415,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteC6(fn) { - var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH; }, @@ -2426,7 +2426,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteC7(fn) { - var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH; }, @@ -2480,7 +2480,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteCC(fn) { - var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH; }, @@ -2491,7 +2491,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteCD(fn) { - var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH; }, @@ -2502,7 +2502,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteCE(fn) { - var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH; }, @@ -2513,7 +2513,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteCF(fn) { - var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH; }, @@ -2567,7 +2567,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteD4(fn) { - var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH; }, @@ -2578,7 +2578,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteD5(fn) { - var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH; }, @@ -2589,7 +2589,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteD6(fn) { - var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH; }, @@ -2600,7 +2600,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteD7(fn) { - var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH; }, @@ -2654,7 +2654,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteDC(fn) { - var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH; }, @@ -2665,7 +2665,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteDD(fn) { - var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH; }, @@ -2676,7 +2676,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteDE(fn) { - var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH; }, @@ -2687,7 +2687,7 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteDF(fn) { - var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH; }, @@ -2698,8 +2698,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE0(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEAX & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.regEAX & 0xff); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL; }, /** @@ -2709,8 +2709,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE1(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regECX & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.regECX & 0xff); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL; }, /** @@ -2720,8 +2720,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE2(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEDX & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.regEDX & 0xff); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL; }, /** @@ -2731,8 +2731,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE3(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEBX & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, this.regEBX & 0xff); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL; }, /** @@ -2742,8 +2742,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE4(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, (this.regEAX >> 8)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); }, /** * opModRegByteE5(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=101 (CH) @@ -2752,8 +2752,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE5(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regECX >> 8) & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, (this.regECX >> 8)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH; }, /** @@ -2763,8 +2763,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE6(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, (this.regEDX >> 8)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH; }, /** @@ -2774,8 +2774,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE7(fn) { - var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEAX >> 8, (this.regEBX >> 8)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH; }, /** @@ -2785,8 +2785,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE8(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEAX & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.regEAX & 0xff); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL; }, /** @@ -2796,8 +2796,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteE9(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regECX & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.regECX & 0xff); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL; }, /** @@ -2807,8 +2807,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteEA(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEDX & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.regEDX & 0xff); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL; }, /** @@ -2818,8 +2818,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteEB(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEBX & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, this.regEBX & 0xff); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL; }, /** @@ -2829,8 +2829,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteEC(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, (this.regEAX >> 8)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH; }, /** @@ -2840,8 +2840,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteED(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regECX >> 8) & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, (this.regECX >> 8)); + this.regECX = (this.regECX & 0xff) | (b << 8); }, /** * opModRegByteEE(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=110 (DH) @@ -2850,8 +2850,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteEE(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, (this.regEDX >> 8)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH; }, /** @@ -2861,8 +2861,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteEF(fn) { - var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regECX >> 8, (this.regEBX >> 8)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH; }, /** @@ -2872,8 +2872,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF0(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEAX & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.regEAX & 0xff); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL; }, /** @@ -2883,8 +2883,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF1(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regECX & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.regECX & 0xff); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL; }, /** @@ -2894,8 +2894,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF2(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEDX & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.regEDX & 0xff); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL; }, /** @@ -2905,8 +2905,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF3(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEBX & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, this.regEBX & 0xff); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL; }, /** @@ -2916,8 +2916,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF4(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, (this.regEAX >> 8)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH; }, /** @@ -2927,8 +2927,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF5(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regECX >> 8) & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, (this.regECX >> 8)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH; }, /** @@ -2938,8 +2938,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF6(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, (this.regEDX >> 8)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); }, /** * opModRegByteF7(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=111 (BH) @@ -2948,8 +2948,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF7(fn) { - var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEDX >> 8, (this.regEBX >> 8)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH; }, /** @@ -2959,8 +2959,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF8(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEAX & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.regEAX & 0xff); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL; }, /** @@ -2970,8 +2970,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteF9(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regECX & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.regECX & 0xff); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL; }, /** @@ -2981,8 +2981,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFA(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEDX & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.regEDX & 0xff); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL; }, /** @@ -2992,8 +2992,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFB(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEBX & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, this.regEBX & 0xff); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL; }, /** @@ -3003,8 +3003,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFC(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, (this.regEAX >> 8)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH; }, /** @@ -3014,8 +3014,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFD(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regECX >> 8) & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, (this.regECX >> 8)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH; }, /** @@ -3025,8 +3025,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFE(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, (this.regEDX >> 8)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH; }, /** @@ -3036,8 +3036,8 @@ X86ModB.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegByteFF(fn) { - var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = fn.call(this, this.regEBX >> 8, (this.regEBX >> 8)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); } ]; @@ -3433,7 +3433,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte20(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3445,7 +3445,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte21(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3457,7 +3457,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte22(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3469,7 +3469,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte23(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3481,7 +3481,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte24(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3493,7 +3493,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte25(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3505,7 +3505,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte26(fn) { - var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -3517,7 +3517,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte27(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3529,7 +3529,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte28(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3541,7 +3541,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte29(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3553,7 +3553,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2A(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3565,7 +3565,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2B(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3577,7 +3577,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2C(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3589,7 +3589,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2D(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3601,7 +3601,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2E(fn) { - var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -3613,7 +3613,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte2F(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3625,7 +3625,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte30(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3637,7 +3637,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte31(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3649,7 +3649,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte32(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3661,7 +3661,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte33(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3673,7 +3673,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte34(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3685,7 +3685,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte35(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3697,7 +3697,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte36(fn) { - var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -3709,7 +3709,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte37(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3721,7 +3721,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte38(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3733,7 +3733,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte39(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3745,7 +3745,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3A(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -3757,7 +3757,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3B(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -3769,7 +3769,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3C(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3781,7 +3781,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3D(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -3793,7 +3793,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3E(fn) { - var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -3805,7 +3805,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte3F(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -4201,7 +4201,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte60(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4213,7 +4213,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte61(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4225,7 +4225,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte62(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4237,7 +4237,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte63(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4249,7 +4249,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte64(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4261,7 +4261,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte65(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4273,7 +4273,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte66(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4285,7 +4285,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte67(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4297,7 +4297,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte68(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4309,7 +4309,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte69(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4321,7 +4321,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6A(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4333,7 +4333,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6B(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4345,7 +4345,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6C(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4357,7 +4357,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6D(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4369,7 +4369,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6E(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4381,7 +4381,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte6F(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4393,7 +4393,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte70(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4405,7 +4405,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte71(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4417,7 +4417,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte72(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4429,7 +4429,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte73(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4441,7 +4441,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte74(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4453,7 +4453,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte75(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4465,7 +4465,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte76(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4477,7 +4477,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte77(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4489,7 +4489,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte78(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4501,7 +4501,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte79(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4513,7 +4513,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7A(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4525,7 +4525,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7B(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4537,7 +4537,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7C(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4549,7 +4549,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7D(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4561,7 +4561,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7E(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4573,7 +4573,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByte7F(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -4969,7 +4969,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA0(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -4981,7 +4981,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA1(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -4993,7 +4993,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA2(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5005,7 +5005,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA3(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5017,7 +5017,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA4(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5029,7 +5029,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA5(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5041,7 +5041,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA6(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5053,7 +5053,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA7(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEAX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEAX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5065,7 +5065,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA8(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5077,7 +5077,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteA9(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5089,7 +5089,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAA(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5101,7 +5101,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAB(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5113,7 +5113,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAC(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5125,7 +5125,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAD(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5137,7 +5137,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAE(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5149,7 +5149,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteAF(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regECX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regECX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5161,7 +5161,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB0(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5173,7 +5173,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB1(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5185,7 +5185,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB2(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5197,7 +5197,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB3(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5209,7 +5209,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB4(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5221,7 +5221,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB5(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5233,7 +5233,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB6(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5245,7 +5245,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB7(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEDX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEDX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5257,7 +5257,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB8(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5269,7 +5269,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteB9(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5281,7 +5281,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBA(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -5293,7 +5293,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBB(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -5305,7 +5305,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBC(fn) { - var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5317,7 +5317,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBD(fn) { - var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5329,7 +5329,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBE(fn) { - var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -5341,7 +5341,7 @@ X86ModB.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemByteBF(fn) { - var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEBX >> 8) & 0xff); + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEBX >> 8); if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7725,8 +7725,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteC4(afnGrp, fnSrc) { - var b = afnGrp[0].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[0].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -7737,8 +7737,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteC5(afnGrp, fnSrc) { - var b = afnGrp[0].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[0].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -7749,8 +7749,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteC6(afnGrp, fnSrc) { - var b = afnGrp[0].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[0].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -7761,8 +7761,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteC7(afnGrp, fnSrc) { - var b = afnGrp[0].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[0].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -7821,8 +7821,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteCC(afnGrp, fnSrc) { - var b = afnGrp[1].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[1].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -7833,8 +7833,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteCD(afnGrp, fnSrc) { - var b = afnGrp[1].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[1].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -7845,8 +7845,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteCE(afnGrp, fnSrc) { - var b = afnGrp[1].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[1].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -7857,8 +7857,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteCF(afnGrp, fnSrc) { - var b = afnGrp[1].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[1].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -7917,8 +7917,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteD4(afnGrp, fnSrc) { - var b = afnGrp[2].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[2].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -7929,8 +7929,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteD5(afnGrp, fnSrc) { - var b = afnGrp[2].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[2].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -7941,8 +7941,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteD6(afnGrp, fnSrc) { - var b = afnGrp[2].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[2].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -7953,8 +7953,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteD7(afnGrp, fnSrc) { - var b = afnGrp[2].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[2].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -8013,8 +8013,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteDC(afnGrp, fnSrc) { - var b = afnGrp[3].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[3].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -8025,8 +8025,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteDD(afnGrp, fnSrc) { - var b = afnGrp[3].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[3].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -8037,8 +8037,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteDE(afnGrp, fnSrc) { - var b = afnGrp[3].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[3].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -8049,8 +8049,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteDF(afnGrp, fnSrc) { - var b = afnGrp[3].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[3].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -8109,8 +8109,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteE4(afnGrp, fnSrc) { - var b = afnGrp[4].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[4].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -8121,8 +8121,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteE5(afnGrp, fnSrc) { - var b = afnGrp[4].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[4].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -8133,8 +8133,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteE6(afnGrp, fnSrc) { - var b = afnGrp[4].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[4].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -8145,8 +8145,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteE7(afnGrp, fnSrc) { - var b = afnGrp[4].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[4].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -8205,8 +8205,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteEC(afnGrp, fnSrc) { - var b = afnGrp[5].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[5].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -8217,8 +8217,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteED(afnGrp, fnSrc) { - var b = afnGrp[5].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[5].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -8229,8 +8229,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteEE(afnGrp, fnSrc) { - var b = afnGrp[5].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[5].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -8241,8 +8241,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteEF(afnGrp, fnSrc) { - var b = afnGrp[5].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[5].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -8301,8 +8301,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteF4(afnGrp, fnSrc) { - var b = afnGrp[6].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[6].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -8313,8 +8313,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteF5(afnGrp, fnSrc) { - var b = afnGrp[6].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[6].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -8325,8 +8325,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteF6(afnGrp, fnSrc) { - var b = afnGrp[6].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[6].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -8337,8 +8337,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteF7(afnGrp, fnSrc) { - var b = afnGrp[6].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[6].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; }, /** @@ -8397,8 +8397,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteFC(afnGrp, fnSrc) { - var b = afnGrp[7].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + var b = afnGrp[7].call(this, (this.regEAX >> 8), fnSrc.call(this)); + this.regEAX = (this.regEAX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; }, /** @@ -8409,8 +8409,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteFD(afnGrp, fnSrc) { - var b = afnGrp[7].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); - this.regECX = (this.regECX & ~0xff00) | (b << 8); + var b = afnGrp[7].call(this, (this.regECX >> 8), fnSrc.call(this)); + this.regECX = (this.regECX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; }, /** @@ -8421,8 +8421,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteFE(afnGrp, fnSrc) { - var b = afnGrp[7].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + var b = afnGrp[7].call(this, (this.regEDX >> 8), fnSrc.call(this)); + this.regEDX = (this.regEDX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; }, /** @@ -8433,8 +8433,8 @@ X86ModB.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpByteFF(afnGrp, fnSrc) { - var b = afnGrp[7].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + var b = afnGrp[7].call(this, (this.regEBX >> 8), fnSrc.call(this)); + this.regEBX = (this.regEBX & 0xff) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; } ]; diff --git a/modules/pcjs/lib/x86modb16.js b/modules/pcjs/lib/x86modb16.js new file mode 100644 index 000000000..9aca92581 --- /dev/null +++ b/modules/pcjs/lib/x86modb16.js @@ -0,0 +1,8442 @@ +/** + * @fileoverview Implements PCjs 8086 mode-byte decoding. + * @author Jeff Parsons + * @version 1.0 + * Created 2012-Sep-05 + * + * Copyright © 2012-2015 Jeff Parsons + * + * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines) + * at and . + * + * PCjs is free software: you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with PCjs. If not, + * see . + * + * You are required to include the above copyright notice in every source code file of every + * copy or modified version of this work, and to display that copyright notice on every screen + * that loads or runs any version of this software (see Computer.sCopyright). + * + * Some PCjs files also attempt to load external resource files, such as character-image files, + * ROM files, and disk image files. Those external resource files are not considered part of the + * PCjs program for purposes of the GNU General Public License, and the author does not claim + * any copyright as to their contents. + */ + +"use strict"; + +if (typeof module !== 'undefined') { + var X86 = require("./x86"); +} + +var X86ModB16 = {}; + +X86ModB16.aOpModReg = [ + /** + * opMod16RegByte00(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte00(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte01(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte01(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte02(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte02(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte03(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte03(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte04(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte04(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte05(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte05(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte06(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte06(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte07(fn): mod=00 (src:mem) reg=000 (dst:AL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte07(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte08(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte08(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte09(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte09(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte0A(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0A(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte0B(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0B(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte0C(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0C(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte0D(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0D(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte0E(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0E(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte0F(fn): mod=00 (src:mem) reg=001 (dst:CL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte0F(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte10(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte10(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte11(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte11(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte12(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte12(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte13(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte13(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte14(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte14(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte15(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte15(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte16(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte16(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte17(fn): mod=00 (src:mem) reg=010 (dst:DL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte17(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte18(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte18(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte19(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte19(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte1A(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1A(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte1B(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1B(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte1C(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1C(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte1D(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1D(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte1E(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1E(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte1F(fn): mod=00 (src:mem) reg=011 (dst:BL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte1F(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte20(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte20(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte21(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte21(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte22(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte22(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte23(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte23(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte24(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte24(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte25(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte25(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte26(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte26(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte27(fn): mod=00 (src:mem) reg=100 (dst:AH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte27(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte28(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte28(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte29(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte29(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte2A(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2A(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte2B(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2B(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte2C(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2C(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte2D(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2D(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte2E(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2E(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte2F(fn): mod=00 (src:mem) reg=101 (dst:CH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte2F(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte30(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte30(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte31(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte31(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte32(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte32(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte33(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte33(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte34(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte34(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte35(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte35(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte36(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte36(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte37(fn): mod=00 (src:mem) reg=110 (dst:DH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte37(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte38(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte38(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte39(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte39(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte3A(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3A(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegByte3B(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3B(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegByte3C(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3C(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte3D(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3D(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte3E(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3E(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegByte3F(fn): mod=00 (src:mem) reg=111 (dst:BH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte3F(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegByte40(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte40(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte41(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte41(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte42(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte42(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte43(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte43(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte44(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte44(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte45(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte45(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte46(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte46(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte47(fn): mod=01 (src:mem+d8) reg=000 (dst:AL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte47(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte48(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte48(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte49(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte49(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte4A(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4A(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte4B(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4B(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte4C(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4C(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte4D(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4D(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte4E(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4E(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte4F(fn): mod=01 (src:mem+d8) reg=001 (dst:CL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte4F(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte50(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte50(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte51(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte51(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte52(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte52(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte53(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte53(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte54(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte54(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte55(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte55(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte56(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte56(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte57(fn): mod=01 (src:mem+d8) reg=010 (dst:DL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte57(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte58(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte58(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte59(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte59(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte5A(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5A(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte5B(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5B(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte5C(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5C(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte5D(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5D(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte5E(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5E(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte5F(fn): mod=01 (src:mem+d8) reg=011 (dst:BL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte5F(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte60(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte60(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte61(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte61(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte62(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte62(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte63(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte63(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte64(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte64(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte65(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte65(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte66(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte66(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte67(fn): mod=01 (src:mem+d8) reg=100 (dst:AH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte67(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte68(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte68(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte69(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte69(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte6A(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6A(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte6B(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6B(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte6C(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6C(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte6D(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6D(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte6E(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6E(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte6F(fn): mod=01 (src:mem+d8) reg=101 (dst:CH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte6F(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte70(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte70(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte71(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte71(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte72(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte72(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte73(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte73(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte74(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte74(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte75(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte75(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte76(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte76(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte77(fn): mod=01 (src:mem+d8) reg=110 (dst:DH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte77(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte78(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte78(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte79(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte79(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte7A(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7A(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte7B(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7B(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte7C(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7C(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte7D(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7D(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte7E(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7E(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte7F(fn): mod=01 (src:mem+d8) reg=111 (dst:BH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte7F(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPDisp())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte80(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte80(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte81(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte81(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte82(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte82(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte83(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte83(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte84(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte84(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte85(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte85(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte86(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte86(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte87(fn): mod=10 (src:mem+d16) reg=000 (dst:AL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte87(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte88(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte88(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte89(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte89(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte8A(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8A(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte8B(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8B(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte8C(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8C(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte8D(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8D(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte8E(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8E(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte8F(fn): mod=10 (src:mem+d16) reg=001 (dst:CL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte8F(fn) { + var b = fn.call(this, this.regECX & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte90(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte90(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte91(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte91(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte92(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte92(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte93(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte93(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte94(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte94(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte95(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte95(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte96(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte96(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte97(fn): mod=10 (src:mem+d16) reg=010 (dst:DL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte97(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte98(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte98(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte99(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte99(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte9A(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9A(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByte9B(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9B(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByte9C(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9C(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte9D(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9D(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte9E(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9E(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByte9F(fn): mod=10 (src:mem+d16) reg=011 (dst:BL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByte9F(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteA0(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA0(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteA1(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA1(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteA2(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA2(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteA3(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA3(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteA4(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA4(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteA5(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA5(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteA6(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA6(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteA7(fn): mod=10 (src:mem+d16) reg=100 (dst:AH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA7(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteA8(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA8(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteA9(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteA9(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteAA(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAA(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteAB(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAB(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteAC(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAC(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteAD(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAD(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteAE(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAE(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteAF(fn): mod=10 (src:mem+d16) reg=101 (dst:CH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteAF(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteB0(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB0(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteB1(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB1(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteB2(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB2(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteB3(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB3(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteB4(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB4(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteB5(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB5(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteB6(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB6(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteB7(fn): mod=10 (src:mem+d16) reg=110 (dst:DH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB7(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteB8(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB8(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteB9(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteB9(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteBA(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBA(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegByteBB(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBB(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegByteBC(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBC(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteBD(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBD(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteBE(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBE(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteStack(this.regEBP + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteBF(fn): mod=10 (src:mem+d16) reg=111 (dst:BH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteBF(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByteData(this.regEBX + this.getIPWord())); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegByteC0(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC0(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.regEAX & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + }, + /** + * opMod16RegByteC1(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC1(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.regECX & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCL; + }, + /** + * opMod16RegByteC2(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC2(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.regEDX & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDL; + }, + /** + * opMod16RegByteC3(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC3(fn) { + var b = fn.call(this, this.regEAX & 0xff, this.regEBX & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBL; + }, + /** + * opMod16RegByteC4(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC4(fn) { + var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH; + }, + /** + * opMod16RegByteC5(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC5(fn) { + var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH; + }, + /** + * opMod16RegByteC6(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC6(fn) { + var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH; + }, + /** + * opMod16RegByteC7(fn): mod=11 (src:reg) reg=000 (dst:AL) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC7(fn) { + var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH; + }, + /** + * opMod16RegByteC8(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC8(fn) { + var b = fn.call(this, this.regECX & 0xff, this.regEAX & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAL; + }, + /** + * opMod16RegByteC9(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteC9(fn) { + var b = fn.call(this, this.regECX & 0xff, this.regECX & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + }, + /** + * opMod16RegByteCA(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCA(fn) { + var b = fn.call(this, this.regECX & 0xff, this.regEDX & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDL; + }, + /** + * opMod16RegByteCB(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCB(fn) { + var b = fn.call(this, this.regECX & 0xff, this.regEBX & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBL; + }, + /** + * opMod16RegByteCC(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCC(fn) { + var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH; + }, + /** + * opMod16RegByteCD(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCD(fn) { + var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH; + }, + /** + * opMod16RegByteCE(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCE(fn) { + var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH; + }, + /** + * opMod16RegByteCF(fn): mod=11 (src:reg) reg=001 (dst:CL) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteCF(fn) { + var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH; + }, + /** + * opMod16RegByteD0(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD0(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.regEAX & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAL; + }, + /** + * opMod16RegByteD1(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD1(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.regECX & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCL; + }, + /** + * opMod16RegByteD2(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD2(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.regEDX & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + }, + /** + * opMod16RegByteD3(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD3(fn) { + var b = fn.call(this, this.regEDX & 0xff, this.regEBX & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBL; + }, + /** + * opMod16RegByteD4(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD4(fn) { + var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH; + }, + /** + * opMod16RegByteD5(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD5(fn) { + var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH; + }, + /** + * opMod16RegByteD6(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD6(fn) { + var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH; + }, + /** + * opMod16RegByteD7(fn): mod=11 (src:reg) reg=010 (dst:DL) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD7(fn) { + var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH; + }, + /** + * opMod16RegByteD8(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD8(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.regEAX & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAL; + }, + /** + * opMod16RegByteD9(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteD9(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.regECX & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCL; + }, + /** + * opMod16RegByteDA(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDA(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.regEDX & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDL; + }, + /** + * opMod16RegByteDB(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDB(fn) { + var b = fn.call(this, this.regEBX & 0xff, this.regEBX & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + }, + /** + * opMod16RegByteDC(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDC(fn) { + var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH; + }, + /** + * opMod16RegByteDD(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDD(fn) { + var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH; + }, + /** + * opMod16RegByteDE(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDE(fn) { + var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH; + }, + /** + * opMod16RegByteDF(fn): mod=11 (src:reg) reg=011 (dst:BL) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteDF(fn) { + var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH; + }, + /** + * opMod16RegByteE0(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE0(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEAX & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL; + }, + /** + * opMod16RegByteE1(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE1(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regECX & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL; + }, + /** + * opMod16RegByteE2(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE2(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEDX & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL; + }, + /** + * opMod16RegByteE3(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE3(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEBX & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL; + }, + /** + * opMod16RegByteE4(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE4(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + }, + /** + * opMod16RegByteE5(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE5(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regECX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH; + }, + /** + * opMod16RegByteE6(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE6(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH; + }, + /** + * opMod16RegByteE7(fn): mod=11 (src:reg) reg=100 (dst:AH) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE7(fn) { + var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH; + }, + /** + * opMod16RegByteE8(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE8(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEAX & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL; + }, + /** + * opMod16RegByteE9(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteE9(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regECX & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL; + }, + /** + * opMod16RegByteEA(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteEA(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEDX & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL; + }, + /** + * opMod16RegByteEB(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteEB(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEBX & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL; + }, + /** + * opMod16RegByteEC(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteEC(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH; + }, + /** + * opMod16RegByteED(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteED(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regECX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + }, + /** + * opMod16RegByteEE(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteEE(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH; + }, + /** + * opMod16RegByteEF(fn): mod=11 (src:reg) reg=101 (dst:CH) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteEF(fn) { + var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH; + }, + /** + * opMod16RegByteF0(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF0(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEAX & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL; + }, + /** + * opMod16RegByteF1(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF1(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regECX & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL; + }, + /** + * opMod16RegByteF2(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF2(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEDX & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL; + }, + /** + * opMod16RegByteF3(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF3(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEBX & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL; + }, + /** + * opMod16RegByteF4(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF4(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH; + }, + /** + * opMod16RegByteF5(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF5(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regECX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH; + }, + /** + * opMod16RegByteF6(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF6(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + }, + /** + * opMod16RegByteF7(fn): mod=11 (src:reg) reg=110 (dst:DH) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF7(fn) { + var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH; + }, + /** + * opMod16RegByteF8(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=000 (AL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF8(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEAX & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL; + }, + /** + * opMod16RegByteF9(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=001 (CL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteF9(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regECX & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL; + }, + /** + * opMod16RegByteFA(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=010 (DL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFA(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEDX & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL; + }, + /** + * opMod16RegByteFB(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=011 (BL) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFB(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEBX & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL; + }, + /** + * opMod16RegByteFC(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=100 (AH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFC(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH; + }, + /** + * opMod16RegByteFD(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=101 (CH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFD(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regECX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH; + }, + /** + * opMod16RegByteFE(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=110 (DH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFE(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH; + }, + /** + * opMod16RegByteFF(fn): mod=11 (src:reg) reg=111 (dst:BH) r/m=111 (BH) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegByteFF(fn) { + var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + } +]; + +X86ModB16.aOpModMem = [ + /** + * opMod16MemByte00(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte00(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte01(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte01(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte02(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte02(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte03(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte03(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte04(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte04(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte05(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte05(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte06(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte06(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte07(fn): mod=00 (dst:mem) reg=000 (src:AL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte07(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte08(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte08(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte09(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte09(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte0A(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte0B(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte0C(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte0D(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte0E(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0E(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte0F(fn): mod=00 (dst:mem) reg=001 (src:CL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte0F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte10(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte10(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte11(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte11(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte12(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte12(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte13(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte13(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte14(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte14(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte15(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte15(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte16(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte16(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte17(fn): mod=00 (dst:mem) reg=010 (src:DL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte17(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte18(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte18(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte19(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte19(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte1A(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte1B(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte1C(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte1D(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte1E(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1E(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte1F(fn): mod=00 (dst:mem) reg=011 (src:BL) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte1F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte20(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte20(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte21(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte21(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte22(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte22(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte23(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte23(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte24(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte24(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte25(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte25(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte26(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte26(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte27(fn): mod=00 (dst:mem) reg=100 (src:AH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte27(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte28(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte28(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte29(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte29(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte2A(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte2B(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte2C(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte2D(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte2E(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2E(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte2F(fn): mod=00 (dst:mem) reg=101 (src:CH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte2F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte30(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte30(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte31(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte31(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte32(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte32(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte33(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte33(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte34(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte34(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte35(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte35(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte36(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte36(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte37(fn): mod=00 (dst:mem) reg=110 (src:DH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte37(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte38(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte38(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte39(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte39(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte3A(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemByte3B(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemByte3C(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte3D(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte3E(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3E(fn) { + var b = fn.call(this, this.modEAByteData(this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemByte3F(fn): mod=00 (dst:mem) reg=111 (src:BH) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte3F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemByte40(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte40(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte41(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte41(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte42(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte42(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte43(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte43(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte44(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte44(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte45(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte45(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte46(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte46(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte47(fn): mod=01 (dst:mem+d8) reg=000 (src:AL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte47(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte48(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte48(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte49(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte49(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte4A(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte4B(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte4C(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte4D(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte4E(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte4F(fn): mod=01 (dst:mem+d8) reg=001 (src:CL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte4F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte50(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte50(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte51(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte51(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte52(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte52(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte53(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte53(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte54(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte54(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte55(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte55(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte56(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte56(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte57(fn): mod=01 (dst:mem+d8) reg=010 (src:DL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte57(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte58(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte58(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte59(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte59(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte5A(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte5B(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte5C(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte5D(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte5E(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte5F(fn): mod=01 (dst:mem+d8) reg=011 (src:BL) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte5F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte60(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte60(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte61(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte61(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte62(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte62(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte63(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte63(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte64(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte64(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte65(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte65(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte66(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte66(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte67(fn): mod=01 (dst:mem+d8) reg=100 (src:AH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte67(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte68(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte68(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte69(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte69(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte6A(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte6B(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte6C(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte6D(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte6E(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte6F(fn): mod=01 (dst:mem+d8) reg=101 (src:CH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte6F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte70(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte70(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte71(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte71(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte72(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte72(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte73(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte73(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte74(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte74(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte75(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte75(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte76(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte76(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte77(fn): mod=01 (dst:mem+d8) reg=110 (src:DH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte77(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte78(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte78(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte79(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte79(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte7A(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte7B(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte7C(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte7D(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte7E(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte7F(fn): mod=01 (dst:mem+d8) reg=111 (src:BH) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte7F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte80(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte80(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte81(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte81(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte82(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte82(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte83(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte83(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte84(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte84(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte85(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte85(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte86(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte86(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte87(fn): mod=10 (dst:mem+d16) reg=000 (src:AL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte87(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte88(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte88(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte89(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte89(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte8A(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte8B(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte8C(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte8D(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte8E(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte8F(fn): mod=10 (dst:mem+d16) reg=001 (src:CL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte8F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte90(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte90(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte91(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte91(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte92(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte92(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte93(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte93(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte94(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte94(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte95(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte95(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte96(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte96(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte97(fn): mod=10 (dst:mem+d16) reg=010 (src:DL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte97(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte98(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte98(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte99(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte99(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte9A(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9A(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByte9B(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9B(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByte9C(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9C(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte9D(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9D(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte9E(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9E(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByte9F(fn): mod=10 (dst:mem+d16) reg=011 (src:BL) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByte9F(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteA0(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA0(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteA1(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA1(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteA2(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA2(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteA3(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA3(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteA4(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA4(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteA5(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA5(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteA6(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA6(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteA7(fn): mod=10 (dst:mem+d16) reg=100 (src:AH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA7(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteA8(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA8(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteA9(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteA9(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteAA(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAA(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteAB(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAB(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteAC(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAC(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteAD(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAD(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteAE(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAE(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteAF(fn): mod=10 (dst:mem+d16) reg=101 (src:CH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteAF(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteB0(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB0(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteB1(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB1(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteB2(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB2(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteB3(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB3(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteB4(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB4(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteB5(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB5(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteB6(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB6(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteB7(fn): mod=10 (dst:mem+d16) reg=110 (src:DH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB7(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteB8(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB8(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteB9(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteB9(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteBA(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBA(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemByteBB(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBB(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemByteBC(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBC(fn) { + var b = fn.call(this, this.modEAByteData(this.regESI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteBD(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBD(fn) { + var b = fn.call(this, this.modEAByteData(this.regEDI + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteBE(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBE(fn) { + var b = fn.call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemByteBF(fn): mod=10 (dst:mem+d16) reg=111 (src:BH) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemByteBF(fn) { + var b = fn.call(this, this.modEAByteData(this.regEBX + this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + X86ModB16.aOpModReg[0xC0], X86ModB16.aOpModReg[0xC8], X86ModB16.aOpModReg[0xD0], X86ModB16.aOpModReg[0xD8], + X86ModB16.aOpModReg[0xE0], X86ModB16.aOpModReg[0xE8], X86ModB16.aOpModReg[0xF0], X86ModB16.aOpModReg[0xF8], + X86ModB16.aOpModReg[0xC1], X86ModB16.aOpModReg[0xC9], X86ModB16.aOpModReg[0xD1], X86ModB16.aOpModReg[0xD9], + X86ModB16.aOpModReg[0xE1], X86ModB16.aOpModReg[0xE9], X86ModB16.aOpModReg[0xF1], X86ModB16.aOpModReg[0xF9], + X86ModB16.aOpModReg[0xC2], X86ModB16.aOpModReg[0xCA], X86ModB16.aOpModReg[0xD2], X86ModB16.aOpModReg[0xDA], + X86ModB16.aOpModReg[0xE2], X86ModB16.aOpModReg[0xEA], X86ModB16.aOpModReg[0xF2], X86ModB16.aOpModReg[0xFA], + X86ModB16.aOpModReg[0xC3], X86ModB16.aOpModReg[0xCB], X86ModB16.aOpModReg[0xD3], X86ModB16.aOpModReg[0xDB], + X86ModB16.aOpModReg[0xE3], X86ModB16.aOpModReg[0xEB], X86ModB16.aOpModReg[0xF3], X86ModB16.aOpModReg[0xFB], + X86ModB16.aOpModReg[0xC4], X86ModB16.aOpModReg[0xCC], X86ModB16.aOpModReg[0xD4], X86ModB16.aOpModReg[0xDC], + X86ModB16.aOpModReg[0xE4], X86ModB16.aOpModReg[0xEC], X86ModB16.aOpModReg[0xF4], X86ModB16.aOpModReg[0xFC], + X86ModB16.aOpModReg[0xC5], X86ModB16.aOpModReg[0xCD], X86ModB16.aOpModReg[0xD5], X86ModB16.aOpModReg[0xDD], + X86ModB16.aOpModReg[0xE5], X86ModB16.aOpModReg[0xED], X86ModB16.aOpModReg[0xF5], X86ModB16.aOpModReg[0xFD], + X86ModB16.aOpModReg[0xC6], X86ModB16.aOpModReg[0xCE], X86ModB16.aOpModReg[0xD6], X86ModB16.aOpModReg[0xDE], + X86ModB16.aOpModReg[0xE6], X86ModB16.aOpModReg[0xEE], X86ModB16.aOpModReg[0xF6], X86ModB16.aOpModReg[0xFE], + X86ModB16.aOpModReg[0xC7], X86ModB16.aOpModReg[0xCF], X86ModB16.aOpModReg[0xD7], X86ModB16.aOpModReg[0xDF], + X86ModB16.aOpModReg[0xE7], X86ModB16.aOpModReg[0xEF], X86ModB16.aOpModReg[0xF7], X86ModB16.aOpModReg[0xFF] +]; + +X86ModB16.aOpModGrp = [ + /** + * opMod16GrpByte00(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte00(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte01(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte01(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte02(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte02(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte03(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte03(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte04(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte04(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte05(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte05(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte06(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte06(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte07(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte07(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte08(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte08(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte09(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte09(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte0A(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0A(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte0B(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0B(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte0C(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0C(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte0D(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0D(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte0E(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0E(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte0F(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte0F(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte10(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte10(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte11(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte11(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte12(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte12(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte13(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte13(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte14(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte14(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte15(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte15(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte16(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte16(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte17(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte17(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte18(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte18(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte19(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte19(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte1A(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1A(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte1B(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1B(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte1C(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1C(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte1D(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1D(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte1E(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1E(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte1F(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte1F(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte20(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte20(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte21(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte21(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte22(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte22(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte23(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte23(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte24(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte24(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte25(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte25(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte26(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte26(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte27(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte27(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte28(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte28(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte29(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte29(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte2A(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2A(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte2B(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2B(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte2C(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2C(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte2D(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2D(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte2E(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2E(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte2F(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte2F(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte30(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte30(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte31(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte31(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte32(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte32(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte33(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte33(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte34(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte34(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte35(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte35(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte36(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte36(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte37(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte37(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte38(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte38(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte39(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte39(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte3A(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3A(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpByte3B(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3B(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpByte3C(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3C(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regESI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte3D(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3D(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte3E(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3E(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpByte3F(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte3F(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpByte40(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte40(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte41(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte41(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte42(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte42(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte43(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte43(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte44(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte44(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte45(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte45(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte46(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte46(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte47(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte47(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte48(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte48(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte49(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte49(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte4A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4A(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte4B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4B(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte4C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4C(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte4D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4D(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte4E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4E(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte4F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte4F(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte50(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte50(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte51(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte51(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte52(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte52(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte53(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte53(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte54(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte54(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte55(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte55(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte56(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte56(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte57(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte57(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte58(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte58(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte59(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte59(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte5A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5A(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte5B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5B(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte5C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5C(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte5D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5D(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte5E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5E(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte5F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte5F(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte60(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte60(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte61(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte61(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte62(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte62(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte63(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte63(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte64(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte64(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte65(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte65(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte66(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte66(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte67(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte67(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte68(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte68(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte69(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte69(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte6A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6A(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte6B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6B(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte6C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6C(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte6D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6D(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte6E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6E(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte6F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte6F(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte70(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte70(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte71(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte71(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte72(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte72(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte73(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte73(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte74(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte74(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte75(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte75(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte76(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte76(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte77(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte77(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte78(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte78(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte79(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte79(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte7A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7A(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte7B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7B(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte7C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7C(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte7D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7D(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte7E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7E(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte7F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte7F(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte80(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte80(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte81(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte81(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte82(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte82(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte83(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte83(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte84(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte84(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte85(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte85(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte86(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte86(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte87(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte87(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte88(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte88(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte89(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte89(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte8A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8A(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte8B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8B(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte8C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8C(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte8D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8D(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte8E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8E(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte8F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte8F(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte90(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte90(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte91(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte91(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte92(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte92(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte93(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte93(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte94(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte94(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte95(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte95(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte96(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte96(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte97(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte97(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte98(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte98(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte99(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte99(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte9A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9A(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByte9B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9B(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByte9C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9C(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte9D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9D(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte9E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9E(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByte9F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByte9F(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteA0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA0(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteA1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA1(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteA2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA2(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteA3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA3(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteA4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA4(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteA5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA5(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteA6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA6(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteA7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA7(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteA8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA8(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteA9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteA9(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteAA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAA(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteAB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAB(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteAC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAC(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteAD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAD(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteAE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAE(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteAF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteAF(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteB0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB0(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteB1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB1(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteB2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB2(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteB3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB3(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteB4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB4(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteB5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB5(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteB6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB6(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteB7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB7(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteB8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB8(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteB9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteB9(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteBA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBA(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpByteBB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBB(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpByteBC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBC(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteBD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBD(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteBE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBE(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteBF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteBF(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.modEAByteData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpByteC0(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC0(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC1(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC1(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC2(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC2(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC3(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC3(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC4(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC4(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC5(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC5(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC6(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC6(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC7(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC7(afnGrp, fnSrc) { + var b = afnGrp[0].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC8(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC8(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteC9(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteC9(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCA(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCA(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCB(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCB(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCC(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCC(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCD(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCD(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCE(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCE(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteCF(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteCF(afnGrp, fnSrc) { + var b = afnGrp[1].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD0(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD0(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD1(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD1(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD2(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD2(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD3(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD3(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD4(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD4(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD5(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD5(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD6(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD6(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD7(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD7(afnGrp, fnSrc) { + var b = afnGrp[2].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD8(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD8(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteD9(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteD9(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDA(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDA(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDB(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDB(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDC(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDC(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDD(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDD(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDE(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDE(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteDF(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteDF(afnGrp, fnSrc) { + var b = afnGrp[3].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE0(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE0(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE1(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE1(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE2(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE2(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE3(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE3(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE4(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE4(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE5(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE5(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE6(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE6(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE7(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE7(afnGrp, fnSrc) { + var b = afnGrp[4].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE8(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE8(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteE9(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteE9(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteEA(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteEA(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteEB(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteEB(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteEC(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteEC(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteED(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteED(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteEE(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteEE(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteEF(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteEF(afnGrp, fnSrc) { + var b = afnGrp[5].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF0(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF0(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF1(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF1(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF2(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF2(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF3(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF3(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF4(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF4(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF5(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF5(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF6(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF6(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF7(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF7(afnGrp, fnSrc) { + var b = afnGrp[6].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF8(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=000 (AL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF8(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.regEAX & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteF9(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=001 (CL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteF9(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.regECX & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFA(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=010 (DL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFA(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.regEDX & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFB(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=011 (BL) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFB(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, this.regEBX & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff) | b; + if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFC(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=100 (AH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFC(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFD(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=101 (CH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFD(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); + this.regECX = (this.regECX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFE(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=110 (DH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFE(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; + }, + /** + * opMod16GrpByteFF(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=111 (BH) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpByteFF(afnGrp, fnSrc) { + var b = afnGrp[7].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; + } +]; + +if (typeof module !== 'undefined') module.exports = X86ModB16; diff --git a/modules/pcjs/lib/x86modw.js b/modules/pcjs/lib/x86modw.js index fdfd8e998..2621474df 100644 --- a/modules/pcjs/lib/x86modw.js +++ b/modules/pcjs/lib/x86modw.js @@ -46,8 +46,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord00(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -60,8 +59,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord01(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -74,8 +72,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord02(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -88,8 +85,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord03(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -102,8 +98,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord04(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -116,8 +111,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord05(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -130,8 +124,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord06(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -144,8 +137,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord07(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -158,8 +150,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord08(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -172,8 +163,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord09(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -186,8 +176,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0A(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -200,8 +189,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0B(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -214,8 +202,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0C(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -228,8 +215,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0D(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -242,8 +228,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0E(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -256,8 +241,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord0F(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -270,8 +254,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord10(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -284,8 +267,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord11(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -298,8 +280,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord12(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -312,8 +293,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord13(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -326,8 +306,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord14(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -340,8 +319,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord15(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -354,8 +332,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord16(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -368,8 +345,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord17(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -382,8 +358,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord18(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -396,8 +371,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord19(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -410,8 +384,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1A(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -424,8 +397,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1B(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -438,8 +410,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1C(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -452,8 +423,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1D(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -466,8 +436,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1E(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -480,8 +449,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord1F(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -494,8 +462,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord20(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regESI)); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, /** @@ -505,8 +472,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord21(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regEDI)); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, /** @@ -516,8 +482,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord22(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regESI)); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; }, /** @@ -527,8 +492,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord23(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regEDI)); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, /** @@ -538,8 +502,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord24(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regESI)); this.nStepCycles -= this.CYCLES.nEACyclesBase; }, /** @@ -549,8 +512,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord25(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEDI)); this.nStepCycles -= this.CYCLES.nEACyclesBase; }, /** @@ -560,8 +522,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord26(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesDisp; }, /** @@ -571,8 +532,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord27(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX)); this.nStepCycles -= this.CYCLES.nEACyclesBase; }, /** @@ -582,8 +542,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord28(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -596,8 +555,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord29(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -610,8 +568,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2A(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -624,8 +581,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2B(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -638,8 +594,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2C(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -652,8 +607,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2D(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -666,8 +620,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2E(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -680,8 +633,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord2F(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -694,8 +646,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord30(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -708,8 +659,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord31(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -722,8 +672,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord32(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -736,8 +685,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord33(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -750,8 +698,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord34(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -764,8 +711,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord35(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -778,8 +724,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord36(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -792,8 +737,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord37(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -806,8 +750,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord38(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -820,8 +763,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord39(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -834,8 +776,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3A(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -848,8 +789,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3B(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -862,8 +802,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3C(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -876,8 +815,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3D(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -890,8 +828,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3E(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -904,8 +841,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord3F(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -918,8 +854,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord40(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -932,8 +867,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord41(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -946,8 +880,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord42(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -960,8 +893,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord43(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -974,8 +906,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord44(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -988,8 +919,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord45(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1002,8 +932,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord46(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1016,8 +945,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord47(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1030,8 +958,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord48(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1044,8 +971,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord49(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1058,8 +984,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4A(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1072,8 +997,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4B(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1086,8 +1010,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4C(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1100,8 +1023,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4D(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1114,8 +1036,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4E(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1128,8 +1049,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord4F(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1142,8 +1062,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord50(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1156,8 +1075,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord51(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1170,8 +1088,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord52(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1184,8 +1101,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord53(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1198,8 +1114,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord54(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1212,8 +1127,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord55(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1226,8 +1140,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord56(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1240,8 +1153,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord57(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -1254,8 +1166,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord58(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1268,8 +1179,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord59(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1282,8 +1192,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5A(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1296,8 +1205,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5B(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1310,8 +1218,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5C(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1324,8 +1231,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5D(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1338,8 +1244,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5E(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1352,8 +1257,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord5F(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -1366,8 +1270,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord60(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, /** @@ -1377,8 +1280,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord61(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, /** @@ -1388,8 +1290,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord62(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, /** @@ -1399,8 +1300,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord63(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, /** @@ -1410,8 +1310,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord64(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regESI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -1421,8 +1320,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord65(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEDI + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -1432,8 +1330,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord66(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -1443,8 +1340,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord67(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.getIPDisp())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -1454,8 +1350,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord68(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1468,8 +1363,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord69(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1482,8 +1376,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6A(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1496,8 +1389,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6B(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1510,8 +1402,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6C(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1524,8 +1415,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6D(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1538,8 +1428,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6E(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1552,8 +1441,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord6F(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -1566,8 +1454,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord70(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1580,8 +1467,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord71(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1594,8 +1480,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord72(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1608,8 +1493,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord73(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1622,8 +1506,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord74(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1636,8 +1519,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord75(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1650,8 +1532,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord76(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1664,8 +1545,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord77(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -1678,8 +1558,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord78(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1692,8 +1571,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord79(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1706,8 +1584,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7A(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1720,8 +1597,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7B(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1734,8 +1610,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7C(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1748,8 +1623,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7D(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1762,8 +1636,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7E(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1776,8 +1649,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord7F(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPDisp())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -1790,8 +1662,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord80(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1804,8 +1675,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord81(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1818,8 +1688,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord82(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1832,8 +1701,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord83(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1846,8 +1714,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord84(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1860,8 +1727,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord85(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1874,8 +1740,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord86(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1888,8 +1753,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord87(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -1902,8 +1766,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord88(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1916,8 +1779,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord89(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1930,8 +1792,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8A(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1944,8 +1805,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8B(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1958,8 +1818,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8C(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1972,8 +1831,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8D(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -1986,8 +1844,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8E(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -2000,8 +1857,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord8F(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -2014,8 +1870,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord90(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2028,8 +1883,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord91(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2042,8 +1896,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord92(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2056,8 +1909,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord93(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2070,8 +1922,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord94(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2084,8 +1935,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord95(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2098,8 +1948,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord96(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2112,8 +1961,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord97(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -2126,8 +1974,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord98(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2140,8 +1987,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord99(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2154,8 +2000,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9A(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2168,8 +2013,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9B(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2182,8 +2026,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9C(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2196,8 +2039,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9D(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2210,8 +2052,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9E(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2224,8 +2065,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWord9F(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -2238,8 +2078,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA0(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, /** @@ -2249,8 +2088,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA1(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, /** @@ -2260,8 +2098,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA2(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; }, /** @@ -2271,8 +2108,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA3(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; }, /** @@ -2282,8 +2118,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA4(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regESI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -2293,8 +2128,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA5(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEDI + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -2304,8 +2138,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA6(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordStack(this.regEBP + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -2315,8 +2148,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA7(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.getEAWordData(this.regEBX + this.getIPWord())); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, /** @@ -2326,8 +2158,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA8(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2340,8 +2171,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordA9(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2354,8 +2184,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAA(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2368,8 +2197,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAB(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2382,8 +2210,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAC(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2396,8 +2223,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAD(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2410,8 +2236,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAE(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2424,8 +2249,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordAF(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -2438,8 +2262,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB0(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2452,8 +2275,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB1(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2466,8 +2288,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB2(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2480,8 +2301,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB3(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2494,8 +2314,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB4(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2508,8 +2327,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB5(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2522,8 +2340,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB6(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2536,8 +2353,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB7(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -2550,8 +2366,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB8(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2564,8 +2379,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordB9(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2578,8 +2392,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBA(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2592,8 +2405,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBB(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2606,8 +2418,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBC(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2620,8 +2431,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBD(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2634,8 +2444,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBE(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2648,8 +2457,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordBF(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPWord())); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -2662,8 +2470,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC0(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regEAX & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regEAX); }, /** * opModRegWordC1(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=001 (CX) @@ -2672,8 +2479,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC1(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regECX & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regECX); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH; } @@ -2685,8 +2491,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC2(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regEDX & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regEDX); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH; } @@ -2698,8 +2503,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC3(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regEBX & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regEBX); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH; } @@ -2711,8 +2515,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC4(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regESP & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regESP); if (BACKTRACK) { this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI; } @@ -2724,8 +2527,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC5(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regEBP & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regEBP); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi; } @@ -2737,8 +2539,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC6(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regESI & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regESI); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi; } @@ -2750,8 +2551,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC7(fn) { - var w = fn.call(this, this.regEAX & this.dataMask, this.regEDI & this.dataMask); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = fn.call(this, this.regEAX, this.regEDI); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi; } @@ -2763,8 +2563,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC8(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regEAX & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regEAX); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH; } @@ -2776,8 +2575,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordC9(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regECX & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regECX); }, /** * opModRegWordCA(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=010 (DX) @@ -2786,8 +2584,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCA(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regEDX & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regEDX); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH; } @@ -2799,8 +2596,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCB(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regEBX & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regEBX); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH; } @@ -2812,8 +2608,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCC(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regESP & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regESP); if (BACKTRACK) { this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI; } @@ -2825,8 +2620,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCD(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regEBP & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regEBP); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi; } @@ -2838,8 +2632,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCE(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regESI & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regESI); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi; } @@ -2851,8 +2644,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordCF(fn) { - var w = fn.call(this, this.regECX & this.dataMask, this.regEDI & this.dataMask); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = fn.call(this, this.regECX, this.regEDI); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi; } @@ -2864,8 +2656,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD0(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regEAX & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regEAX); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH; } @@ -2877,8 +2668,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD1(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regECX & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regECX); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH; } @@ -2890,8 +2680,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD2(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regEDX & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regEDX); }, /** * opModRegWordD3(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=011 (BX) @@ -2900,8 +2689,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD3(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regEBX & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regEBX); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH; } @@ -2913,8 +2701,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD4(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regESP & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regESP); if (BACKTRACK) { this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI; } @@ -2926,8 +2713,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD5(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regEBP & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regEBP); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi; } @@ -2939,8 +2725,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD6(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regESI & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regESI); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi; } @@ -2952,8 +2737,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD7(fn) { - var w = fn.call(this, this.regEDX & this.dataMask, this.regEDI & this.dataMask); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = fn.call(this, this.regEDX, this.regEDI); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi; } @@ -2965,8 +2749,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD8(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regEAX & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regEAX); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH; } @@ -2978,8 +2761,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordD9(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regECX & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regECX); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH; } @@ -2991,8 +2773,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDA(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regEDX & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regEDX); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH; } @@ -3004,8 +2785,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDB(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regEBX & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regEBX); }, /** * opModRegWordDC(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=100 (SP) @@ -3014,8 +2794,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDC(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regESP & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regESP); if (BACKTRACK) { this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI; } @@ -3027,8 +2806,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDD(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regEBP & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regEBP); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi; } @@ -3040,8 +2818,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDE(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regESI & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regESI); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi; } @@ -3053,8 +2830,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordDF(fn) { - var w = fn.call(this, this.regEBX & this.dataMask, this.regEDI & this.dataMask); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = fn.call(this, this.regEBX, this.regEDI); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi; } @@ -3066,8 +2842,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE0(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regEAX & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regEAX); }, /** * opModRegWordE1(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=001 (CX) @@ -3076,8 +2851,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE1(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regECX & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regECX); }, /** * opModRegWordE2(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=010 (DX) @@ -3086,8 +2860,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE2(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regEDX & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regEDX); }, /** * opModRegWordE3(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=011 (BX) @@ -3096,8 +2869,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE3(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regEBX & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regEBX); }, /** * opModRegWordE4(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=100 (SP) @@ -3106,8 +2878,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE4(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regESP & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regESP); }, /** * opModRegWordE5(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=101 (BP) @@ -3116,8 +2887,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE5(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regEBP & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regEBP); }, /** * opModRegWordE6(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=110 (SI) @@ -3126,8 +2896,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE6(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regESI & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regESI); }, /** * opModRegWordE7(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=111 (DI) @@ -3136,8 +2905,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE7(fn) { - var w = fn.call(this, this.regESP & this.dataMask, this.regEDI & this.dataMask); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = fn.call(this, this.regESP, this.regEDI); }, /** * opModRegWordE8(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=000 (AX) @@ -3146,8 +2914,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE8(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regEAX & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regEAX); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH; } @@ -3159,8 +2926,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordE9(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regECX & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regECX); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH; } @@ -3172,8 +2938,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordEA(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regEDX & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regEDX); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH; } @@ -3185,8 +2950,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordEB(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regEBX & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regEBX); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH; } @@ -3198,8 +2962,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordEC(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regESP & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regESP); if (BACKTRACK) { this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI; } @@ -3211,8 +2974,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordED(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regEBP & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regEBP); }, /** * opModRegWordEE(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=110 (SI) @@ -3221,8 +2983,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordEE(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regESI & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regESI); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi; } @@ -3234,8 +2995,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordEF(fn) { - var w = fn.call(this, this.regEBP & this.dataMask, this.regEDI & this.dataMask); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = fn.call(this, this.regEBP, this.regEDI); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi; } @@ -3247,8 +3007,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF0(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regEAX & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regEAX); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH; } @@ -3260,8 +3019,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF1(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regECX & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regECX); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH; } @@ -3273,8 +3031,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF2(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regEDX & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regEDX); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH; } @@ -3286,8 +3043,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF3(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regEBX & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regEBX); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH; } @@ -3299,8 +3055,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF4(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regESP & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regESP); if (BACKTRACK) { this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI; } @@ -3312,8 +3067,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF5(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regEBP & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regEBP); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi; } @@ -3325,8 +3079,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF6(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regESI & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regESI); }, /** * opModRegWordF7(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=111 (DI) @@ -3335,8 +3088,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF7(fn) { - var w = fn.call(this, this.regESI & this.dataMask, this.regEDI & this.dataMask); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = fn.call(this, this.regESI, this.regEDI); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi; } @@ -3348,8 +3100,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF8(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regEAX & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regEAX); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH; } @@ -3361,8 +3112,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordF9(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regECX & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regECX); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH; } @@ -3374,8 +3124,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFA(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regEDX & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regEDX); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH; } @@ -3387,8 +3136,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFB(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regEBX & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regEBX); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH; } @@ -3400,8 +3148,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFC(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regESP & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regESP); if (BACKTRACK) { this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI; } @@ -3413,8 +3160,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFD(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regEBP & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regEBP); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi; } @@ -3426,8 +3172,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFE(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regESI & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regESI); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi; } @@ -3439,8 +3184,7 @@ X86ModW.aOpModReg = [ * @param {function(number,number)} fn (dst,src) */ function opModRegWordFF(fn) { - var w = fn.call(this, this.regEDI & this.dataMask, this.regEDI & this.dataMask); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = fn.call(this, this.regEDI, this.regEDI); } ]; @@ -3452,7 +3196,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord00(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3466,7 +3210,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord01(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3480,7 +3224,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord02(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3494,7 +3238,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord03(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3508,7 +3252,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord04(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3522,7 +3266,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord05(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3536,7 +3280,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord06(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3550,7 +3294,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord07(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -3564,7 +3308,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord08(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3578,7 +3322,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord09(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3592,7 +3336,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3606,7 +3350,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3620,7 +3364,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3634,7 +3378,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3648,7 +3392,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0E(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3662,7 +3406,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord0F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -3676,7 +3420,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord10(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3690,7 +3434,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord11(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3704,7 +3448,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord12(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3718,7 +3462,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord13(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3732,7 +3476,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord14(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3746,7 +3490,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord15(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3760,7 +3504,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord16(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3774,7 +3518,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord17(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -3788,7 +3532,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord18(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3802,7 +3546,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord19(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3816,7 +3560,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3830,7 +3574,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3844,7 +3588,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3858,7 +3602,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3872,7 +3616,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1E(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3886,7 +3630,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord1F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -3900,7 +3644,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord20(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3914,7 +3658,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord21(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3928,7 +3672,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord22(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3942,7 +3686,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord23(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3956,7 +3700,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord24(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3970,7 +3714,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord25(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3984,7 +3728,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord26(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -3998,7 +3742,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord27(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4012,7 +3756,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord28(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4026,7 +3770,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord29(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4040,7 +3784,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4054,7 +3798,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4068,7 +3812,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4082,7 +3826,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4096,7 +3840,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2E(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4110,7 +3854,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord2F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4124,7 +3868,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord30(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4138,7 +3882,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord31(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4152,7 +3896,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord32(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4166,7 +3910,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord33(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4180,7 +3924,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord34(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4194,7 +3938,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord35(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4208,7 +3952,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord36(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4222,7 +3966,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord37(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -4236,7 +3980,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord38(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4250,7 +3994,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord39(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4264,7 +4008,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4278,7 +4022,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4292,7 +4036,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4306,7 +4050,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4320,7 +4064,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3E(fn) { - var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4334,7 +4078,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord3F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -4348,7 +4092,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord40(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4362,7 +4106,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord41(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4376,7 +4120,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord42(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4390,7 +4134,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord43(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4404,7 +4148,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord44(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4418,7 +4162,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord45(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4432,7 +4176,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord46(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4446,7 +4190,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord47(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -4460,7 +4204,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord48(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4474,7 +4218,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord49(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4488,7 +4232,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4502,7 +4246,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4516,7 +4260,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4530,7 +4274,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4544,7 +4288,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4558,7 +4302,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord4F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -4572,7 +4316,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord50(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4586,7 +4330,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord51(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4600,7 +4344,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord52(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4614,7 +4358,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord53(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4628,7 +4372,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord54(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4642,7 +4386,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord55(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4656,7 +4400,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord56(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4670,7 +4414,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord57(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -4684,7 +4428,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord58(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4698,7 +4442,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord59(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4712,7 +4456,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4726,7 +4470,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4740,7 +4484,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4754,7 +4498,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4768,7 +4512,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4782,7 +4526,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord5F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -4796,7 +4540,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord60(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4810,7 +4554,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord61(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4824,7 +4568,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord62(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4838,7 +4582,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord63(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4852,7 +4596,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord64(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4866,7 +4610,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord65(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4880,7 +4624,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord66(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4894,7 +4638,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord67(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -4908,7 +4652,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord68(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4922,7 +4666,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord69(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4936,7 +4680,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4950,7 +4694,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4964,7 +4708,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4978,7 +4722,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -4992,7 +4736,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5006,7 +4750,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord6F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5020,7 +4764,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord70(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5034,7 +4778,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord71(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5048,7 +4792,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord72(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5062,7 +4806,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord73(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5076,7 +4820,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord74(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5090,7 +4834,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord75(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5104,7 +4848,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord76(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5118,7 +4862,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord77(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5132,7 +4876,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord78(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5146,7 +4890,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord79(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5160,7 +4904,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5174,7 +4918,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5188,7 +4932,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5202,7 +4946,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5216,7 +4960,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5230,7 +4974,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord7F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -5244,7 +4988,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord80(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5258,7 +5002,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord81(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5272,7 +5016,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord82(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5286,7 +5030,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord83(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5300,7 +5044,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord84(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5314,7 +5058,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord85(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5328,7 +5072,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord86(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5342,7 +5086,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord87(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEAX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEAX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; } @@ -5356,7 +5100,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord88(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5370,7 +5114,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord89(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5384,7 +5128,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5398,7 +5142,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5412,7 +5156,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5426,7 +5170,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5440,7 +5184,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5454,7 +5198,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord8F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regECX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regECX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; } @@ -5468,7 +5212,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord90(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5482,7 +5226,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord91(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5496,7 +5240,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord92(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5510,7 +5254,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord93(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5524,7 +5268,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord94(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5538,7 +5282,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord95(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5552,7 +5296,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord96(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5566,7 +5310,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord97(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; } @@ -5580,7 +5324,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord98(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5594,7 +5338,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord99(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5608,7 +5352,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9A(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5622,7 +5366,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9B(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5636,7 +5380,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9C(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5650,7 +5394,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9D(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5664,7 +5408,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9E(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5678,7 +5422,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWord9F(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBX & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBX); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; } @@ -5692,7 +5436,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA0(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5706,7 +5450,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA1(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5720,7 +5464,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA2(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5734,7 +5478,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA3(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5748,7 +5492,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA4(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5762,7 +5506,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA5(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5776,7 +5520,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA6(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5790,7 +5534,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA7(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESP); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; } @@ -5804,7 +5548,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA8(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5818,7 +5562,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordA9(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5832,7 +5576,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAA(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5846,7 +5590,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAB(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5860,7 +5604,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAC(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5874,7 +5618,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAD(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5888,7 +5632,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAE(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5902,7 +5646,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordAF(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBP & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBP); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; } @@ -5916,7 +5660,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB0(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5930,7 +5674,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB1(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5944,7 +5688,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB2(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5958,7 +5702,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB3(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5972,7 +5716,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB4(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -5986,7 +5730,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB5(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -6000,7 +5744,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB6(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -6014,7 +5758,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB7(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; } @@ -6028,7 +5772,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB8(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6042,7 +5786,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordB9(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6056,7 +5800,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBA(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6070,7 +5814,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBB(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6084,7 +5828,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBC(fn) { - var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6098,7 +5842,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBD(fn) { - var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6112,7 +5856,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBE(fn) { - var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -6126,7 +5870,7 @@ X86ModW.aOpModMem = [ * @param {function(number,number)} fn (dst,src) */ function opModMemWordBF(fn) { - var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDI & this.dataMask); + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDI); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; } @@ -8464,8 +8208,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC0(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[0].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8478,8 +8221,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC1(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[0].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8492,8 +8234,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC2(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[0].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8506,8 +8247,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC3(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[0].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8520,8 +8260,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC4(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[0].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=101 (BP) @@ -8531,8 +8270,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC5(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[0].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8545,8 +8283,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC6(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[0].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8559,8 +8296,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC7(afnGrp, fnSrc) { - var w = afnGrp[0].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[0].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8573,8 +8309,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC8(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[1].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8587,8 +8322,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordC9(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[1].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8601,8 +8335,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCA(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[1].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8615,8 +8348,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCB(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[1].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8629,8 +8361,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCC(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[1].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=101 (BP) @@ -8640,8 +8371,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCD(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[1].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8654,8 +8384,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCE(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[1].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8668,8 +8397,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordCF(afnGrp, fnSrc) { - var w = afnGrp[1].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[1].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8682,8 +8410,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD0(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[2].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8696,8 +8423,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD1(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[2].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8710,8 +8436,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD2(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[2].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8724,8 +8449,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD3(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[2].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8738,8 +8462,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD4(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[2].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=101 (BP) @@ -8749,8 +8472,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD5(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[2].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8763,8 +8485,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD6(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[2].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8777,8 +8498,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD7(afnGrp, fnSrc) { - var w = afnGrp[2].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[2].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8791,8 +8511,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD8(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[3].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8805,8 +8524,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordD9(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[3].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8819,8 +8537,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDA(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[3].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8833,8 +8550,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDB(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[3].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8847,8 +8563,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDC(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[3].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=101 (BP) @@ -8858,8 +8573,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDD(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[3].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8872,8 +8586,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDE(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[3].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8886,8 +8599,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordDF(afnGrp, fnSrc) { - var w = afnGrp[3].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[3].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8900,8 +8612,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE0(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[4].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8914,8 +8625,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE1(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[4].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8928,8 +8638,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE2(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[4].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8942,8 +8651,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE3(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[4].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8956,8 +8664,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE4(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[4].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=101 (BP) @@ -8967,8 +8674,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE5(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[4].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8981,8 +8687,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE6(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[4].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8995,8 +8700,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE7(afnGrp, fnSrc) { - var w = afnGrp[4].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[4].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -9009,8 +8713,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE8(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[5].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9023,8 +8726,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordE9(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[5].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9037,8 +8739,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordEA(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[5].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9051,8 +8752,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordEB(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[5].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9065,8 +8765,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordEC(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[5].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordED(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=101 (BP) @@ -9076,8 +8775,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordED(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[5].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9090,8 +8788,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordEE(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[5].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9104,8 +8801,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordEF(afnGrp, fnSrc) { - var w = afnGrp[5].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[5].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -9118,8 +8814,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF0(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[6].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9132,8 +8827,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF1(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[6].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9146,8 +8840,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF2(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[6].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9160,8 +8853,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF3(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[6].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9174,8 +8866,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF4(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[6].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=101 (BP) @@ -9185,8 +8876,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF5(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[6].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9199,8 +8889,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF6(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[6].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9213,8 +8902,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF7(afnGrp, fnSrc) { - var w = afnGrp[6].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[6].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -9227,8 +8915,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF8(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & ~this.dataMask) | w; + this.regEAX = afnGrp[7].call(this, this.regEAX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9241,8 +8928,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordF9(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regECX & this.dataMask, fnSrc.call(this)); - this.regECX = (this.regECX & ~this.dataMask) | w; + this.regECX = afnGrp[7].call(this, this.regECX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9255,8 +8941,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFA(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & ~this.dataMask) | w; + this.regEDX = afnGrp[7].call(this, this.regEDX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9269,8 +8954,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFB(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & ~this.dataMask) | w; + this.regEBX = afnGrp[7].call(this, this.regEBX, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9283,8 +8967,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFC(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regESP & this.dataMask, fnSrc.call(this)); - this.regESP = (this.regESP & ~this.dataMask) | w; + this.regESP = afnGrp[7].call(this, this.regESP, fnSrc.call(this)); }, /** * opModGrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=101 (BP) @@ -9294,8 +8977,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFD(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & ~this.dataMask) | w; + this.regEBP = afnGrp[7].call(this, this.regEBP, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9308,8 +8990,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFE(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regESI & this.dataMask, fnSrc.call(this)); - this.regESI = (this.regESI & ~this.dataMask) | w; + this.regESI = afnGrp[7].call(this, this.regESI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9322,8 +9003,7 @@ X86ModW.aOpModGrp = [ * @param {function()} fnSrc */ function opModGrpWordFF(afnGrp, fnSrc) { - var w = afnGrp[7].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & ~this.dataMask) | w; + this.regEDI = afnGrp[7].call(this, this.regEDI, fnSrc.call(this)); if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } diff --git a/modules/pcjs/lib/x86modw16.js b/modules/pcjs/lib/x86modw16.js new file mode 100644 index 000000000..89f10096a --- /dev/null +++ b/modules/pcjs/lib/x86modw16.js @@ -0,0 +1,9333 @@ +/** + * @fileoverview Implements PCjs 8086 mode-byte decoding. + * @author Jeff Parsons + * @version 1.0 + * Created 2012-Sep-05 + * + * Copyright © 2012-2015 Jeff Parsons + * + * This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines) + * at and . + * + * PCjs is free software: you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with PCjs. If not, + * see . + * + * You are required to include the above copyright notice in every source code file of every + * copy or modified version of this work, and to display that copyright notice on every screen + * that loads or runs any version of this software (see Computer.sCopyright). + * + * Some PCjs files also attempt to load external resource files, such as character-image files, + * ROM files, and disk image files. Those external resource files are not considered part of the + * PCjs program for purposes of the GNU General Public License, and the author does not claim + * any copyright as to their contents. + */ + +"use strict"; + +if (typeof module !== 'undefined') { + var X86 = require("./x86"); +} + +var X86ModW16 = {}; + +X86ModW16.aOpModReg = [ + /** + * opMod16RegWord00(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord00(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord01(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord01(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord02(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord02(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord03(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord03(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord04(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord04(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord05(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord05(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord06(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord06(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord07(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord07(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord08(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord08(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord09(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord09(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord0A(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0A(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord0B(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0B(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord0C(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0C(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord0D(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0D(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord0E(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0E(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord0F(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord0F(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord10(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord10(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord11(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord11(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord12(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord12(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord13(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord13(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord14(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord14(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord15(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord15(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord16(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord16(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord17(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord17(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord18(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord18(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord19(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord19(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord1A(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1A(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord1B(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1B(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord1C(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1C(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord1D(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1D(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord1E(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1E(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord1F(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord1F(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord20(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord20(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord21(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord21(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord22(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord22(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord23(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord23(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord24(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord24(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord25(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord25(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord26(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord26(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord27(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord27(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX)); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord28(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord28(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord29(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord29(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord2A(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2A(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord2B(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2B(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord2C(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2C(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord2D(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2D(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord2E(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2E(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord2F(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord2F(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord30(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord30(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord31(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord31(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord32(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord32(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord33(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord33(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord34(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord34(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord35(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord35(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord36(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord36(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord37(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord37(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord38(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord38(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord39(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord39(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord3A(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3A(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16RegWord3B(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3B(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16RegWord3C(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3C(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord3D(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3D(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord3E(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3E(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16RegWord3F(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord3F(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16RegWord40(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord40(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord41(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord41(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord42(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord42(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord43(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord43(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord44(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord44(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord45(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord45(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord46(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord46(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord47(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord47(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord48(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord48(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord49(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord49(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord4A(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4A(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord4B(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4B(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord4C(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4C(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord4D(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4D(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord4E(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4E(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord4F(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord4F(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord50(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord50(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord51(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord51(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord52(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord52(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord53(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord53(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord54(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord54(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord55(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord55(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord56(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord56(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord57(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord57(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord58(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord58(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord59(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord59(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord5A(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5A(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord5B(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5B(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord5C(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5C(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord5D(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5D(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord5E(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5E(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord5F(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord5F(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord60(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord60(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord61(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord61(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord62(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord62(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord63(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord63(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord64(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord64(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord65(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord65(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord66(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord66(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord67(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord67(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord68(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord68(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord69(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord69(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord6A(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6A(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord6B(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6B(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord6C(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6C(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord6D(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6D(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord6E(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6E(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord6F(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord6F(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord70(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord70(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord71(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord71(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord72(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord72(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord73(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord73(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord74(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord74(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord75(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord75(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord76(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord76(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord77(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord77(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord78(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord78(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord79(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord79(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord7A(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7A(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord7B(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7B(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord7C(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7C(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord7D(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7D(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord7E(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7E(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord7F(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord7F(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPDisp())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord80(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord80(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord81(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord81(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord82(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord82(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord83(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord83(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord84(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord84(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord85(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord85(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord86(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord86(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord87(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord87(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord88(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord88(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord89(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord89(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord8A(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8A(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord8B(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8B(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord8C(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8C(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord8D(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8D(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord8E(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8E(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord8F(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord8F(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord90(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord90(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord91(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord91(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord92(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord92(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord93(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord93(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord94(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord94(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord95(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord95(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord96(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord96(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord97(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord97(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord98(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord98(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord99(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord99(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord9A(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9A(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWord9B(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9B(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWord9C(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9C(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord9D(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9D(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord9E(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9E(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWord9F(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWord9F(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordA0(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA0(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordA1(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA1(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordA2(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA2(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordA3(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA3(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordA4(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA4(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordA5(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA5(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordA6(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA6(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordA7(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA7(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regESP = (this.regESP & ~this.dataMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordA8(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA8(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordA9(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordA9(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordAA(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAA(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordAB(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAB(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordAC(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAC(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordAD(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAD(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordAE(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAE(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordAF(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordAF(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordB0(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB0(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordB1(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB1(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordB2(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB2(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordB3(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB3(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordB4(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB4(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordB5(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB5(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordB6(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB6(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordB7(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB7(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordB8(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB8(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regESI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordB9(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordB9(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.regEDI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordBA(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBA(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regESI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16RegWordBB(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBB(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16RegWordBC(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBC(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regESI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordBD(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBD(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEDI + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordBE(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBE(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordStack(this.regEBP + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordBF(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordBF(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.getEAWordData(this.regEBX + this.getIPWord())); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16RegWordC0(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC0(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regEAX & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + }, + /** + * opMod16RegWordC1(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC1(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regECX & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordC2(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC2(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regEDX & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordC3(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC3(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regEBX & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordC4(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC4(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regESP & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordC5(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC5(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regEBP & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordC6(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC6(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regESI & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordC7(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC7(fn) { + var w = fn.call(this, this.regEAX & this.dataMask, this.regEDI & this.dataMask); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordC8(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC8(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regEAX & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordC9(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordC9(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regECX & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + }, + /** + * opMod16RegWordCA(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCA(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regEDX & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordCB(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCB(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regEBX & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordCC(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCC(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regESP & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordCD(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCD(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regEBP & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordCE(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCE(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regESI & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordCF(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordCF(fn) { + var w = fn.call(this, this.regECX & this.dataMask, this.regEDI & this.dataMask); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordD0(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD0(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regEAX & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordD1(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD1(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regECX & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordD2(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD2(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regEDX & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + }, + /** + * opMod16RegWordD3(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD3(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regEBX & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordD4(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD4(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regESP & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordD5(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD5(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regEBP & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordD6(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD6(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regESI & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordD7(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD7(fn) { + var w = fn.call(this, this.regEDX & this.dataMask, this.regEDI & this.dataMask); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordD8(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD8(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regEAX & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordD9(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordD9(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regECX & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordDA(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDA(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regEDX & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordDB(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDB(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regEBX & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + }, + /** + * opMod16RegWordDC(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDC(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regESP & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordDD(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDD(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regEBP & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordDE(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDE(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regESI & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordDF(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordDF(fn) { + var w = fn.call(this, this.regEBX & this.dataMask, this.regEDI & this.dataMask); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordE0(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE0(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regEAX & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE1(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE1(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regECX & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE2(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE2(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regEDX & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE3(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE3(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regEBX & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE4(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE4(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regESP & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE5(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE5(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regEBP & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE6(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE6(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regESI & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE7(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE7(fn) { + var w = fn.call(this, this.regESP & this.dataMask, this.regEDI & this.dataMask); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordE8(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE8(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regEAX & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordE9(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordE9(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regECX & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordEA(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordEA(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regEDX & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordEB(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordEB(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regEBX & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordEC(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordEC(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regESP & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordED(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordED(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regEBP & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + }, + /** + * opMod16RegWordEE(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordEE(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regESI & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordEF(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordEF(fn) { + var w = fn.call(this, this.regEBP & this.dataMask, this.regEDI & this.dataMask); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordF0(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF0(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regEAX & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordF1(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF1(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regECX & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordF2(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF2(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regEDX & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordF3(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF3(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regEBX & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordF4(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF4(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regESP & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordF5(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF5(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regEBP & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordF6(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF6(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regESI & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + }, + /** + * opMod16RegWordF7(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF7(fn) { + var w = fn.call(this, this.regESI & this.dataMask, this.regEDI & this.dataMask); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi; + } + }, + /** + * opMod16RegWordF8(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF8(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regEAX & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH; + } + }, + /** + * opMod16RegWordF9(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordF9(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regECX & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH; + } + }, + /** + * opMod16RegWordFA(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFA(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regEDX & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH; + } + }, + /** + * opMod16RegWordFB(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFB(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regEBX & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH; + } + }, + /** + * opMod16RegWordFC(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFC(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regESP & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opMod16RegWordFD(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFD(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regEBP & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi; + } + }, + /** + * opMod16RegWordFE(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFE(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regESI & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi; + } + }, + /** + * opMod16RegWordFF(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16RegWordFF(fn) { + var w = fn.call(this, this.regEDI & this.dataMask, this.regEDI & this.dataMask); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + } +]; + +X86ModW16.aOpModMem = [ + /** + * opMod16MemWord00(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord00(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord01(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord01(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord02(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord02(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord03(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord03(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord04(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord04(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord05(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord05(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord06(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord06(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord07(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord07(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord08(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord08(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord09(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord09(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord0A(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord0B(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord0C(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord0D(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord0E(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0E(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord0F(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord0F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord10(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord10(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord11(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord11(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord12(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord12(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord13(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord13(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord14(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord14(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord15(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord15(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord16(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord16(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord17(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord17(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord18(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord18(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord19(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord19(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord1A(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord1B(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord1C(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord1D(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord1E(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1E(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord1F(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord1F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord20(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord20(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord21(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord21(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord22(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord22(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord23(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord23(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord24(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord24(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord25(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord25(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord26(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord26(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord27(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord27(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord28(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord28(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord29(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord29(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord2A(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord2B(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord2C(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord2D(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord2E(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2E(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord2F(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord2F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord30(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord30(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord31(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord31(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord32(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord32(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord33(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord33(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord34(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord34(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord35(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord35(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord36(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord36(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord37(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord37(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord38(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord38(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord39(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord39(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord3A(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16MemWord3B(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16MemWord3C(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord3D(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord3E(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3E(fn) { + var w = fn.call(this, this.modEAWordData(this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16MemWord3F(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord3F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16MemWord40(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord40(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord41(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord41(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord42(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord42(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord43(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord43(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord44(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord44(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord45(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord45(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord46(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord46(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord47(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord47(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord48(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord48(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord49(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord49(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord4A(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord4B(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord4C(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord4D(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord4E(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord4F(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord4F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord50(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord50(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord51(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord51(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord52(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord52(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord53(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord53(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord54(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord54(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord55(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord55(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord56(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord56(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord57(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord57(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord58(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord58(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord59(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord59(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord5A(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord5B(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord5C(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord5D(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord5E(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord5F(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord5F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord60(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord60(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord61(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord61(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord62(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord62(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord63(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord63(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord64(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord64(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord65(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord65(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord66(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord66(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord67(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord67(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord68(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord68(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord69(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord69(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord6A(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord6B(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord6C(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord6D(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord6E(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord6F(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord6F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord70(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord70(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord71(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord71(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord72(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord72(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord73(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord73(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord74(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord74(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord75(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord75(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord76(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord76(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord77(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord77(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord78(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord78(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord79(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord79(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord7A(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord7B(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord7C(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord7D(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord7E(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord7F(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord7F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord80(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord80(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord81(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord81(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord82(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord82(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord83(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord83(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord84(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord84(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord85(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord85(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord86(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord86(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord87(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord87(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEAX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord88(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord88(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord89(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord89(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord8A(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord8B(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord8C(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord8D(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord8E(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord8F(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord8F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regECX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord90(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord90(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord91(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord91(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord92(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord92(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord93(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord93(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord94(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord94(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord95(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord95(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord96(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord96(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord97(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord97(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord98(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord98(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord99(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord99(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord9A(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9A(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWord9B(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9B(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWord9C(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9C(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord9D(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9D(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord9E(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9E(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWord9F(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWord9F(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBX & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordA0(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA0(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordA1(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA1(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordA2(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA2(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordA3(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA3(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordA4(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA4(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordA5(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA5(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordA6(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA6(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordA7(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA7(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordA8(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA8(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordA9(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordA9(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordAA(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAA(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordAB(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAB(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordAC(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAC(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordAD(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAD(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordAE(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAE(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordAF(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordAF(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEBP & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordB0(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB0(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordB1(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB1(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordB2(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB2(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordB3(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB3(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordB4(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB4(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordB5(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB5(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordB6(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB6(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordB7(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB7(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regESI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordB8(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB8(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordB9(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordB9(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordBA(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBA(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16MemWordBB(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBB(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16MemWordBC(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBC(fn) { + var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordBD(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBD(fn) { + var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordBE(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBE(fn) { + var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16MemWordBF(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opMod16MemWordBF(fn) { + var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPWord()), this.regEDI & this.dataMask); + if (BACKTRACK) { + this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; + } + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + X86ModW16.aOpModReg[0xC0], X86ModW16.aOpModReg[0xC8], X86ModW16.aOpModReg[0xD0], X86ModW16.aOpModReg[0xD8], + X86ModW16.aOpModReg[0xE0], X86ModW16.aOpModReg[0xE8], X86ModW16.aOpModReg[0xF0], X86ModW16.aOpModReg[0xF8], + X86ModW16.aOpModReg[0xC1], X86ModW16.aOpModReg[0xC9], X86ModW16.aOpModReg[0xD1], X86ModW16.aOpModReg[0xD9], + X86ModW16.aOpModReg[0xE1], X86ModW16.aOpModReg[0xE9], X86ModW16.aOpModReg[0xF1], X86ModW16.aOpModReg[0xF9], + X86ModW16.aOpModReg[0xC2], X86ModW16.aOpModReg[0xCA], X86ModW16.aOpModReg[0xD2], X86ModW16.aOpModReg[0xDA], + X86ModW16.aOpModReg[0xE2], X86ModW16.aOpModReg[0xEA], X86ModW16.aOpModReg[0xF2], X86ModW16.aOpModReg[0xFA], + X86ModW16.aOpModReg[0xC3], X86ModW16.aOpModReg[0xCB], X86ModW16.aOpModReg[0xD3], X86ModW16.aOpModReg[0xDB], + X86ModW16.aOpModReg[0xE3], X86ModW16.aOpModReg[0xEB], X86ModW16.aOpModReg[0xF3], X86ModW16.aOpModReg[0xFB], + X86ModW16.aOpModReg[0xC4], X86ModW16.aOpModReg[0xCC], X86ModW16.aOpModReg[0xD4], X86ModW16.aOpModReg[0xDC], + X86ModW16.aOpModReg[0xE4], X86ModW16.aOpModReg[0xEC], X86ModW16.aOpModReg[0xF4], X86ModW16.aOpModReg[0xFC], + X86ModW16.aOpModReg[0xC5], X86ModW16.aOpModReg[0xCD], X86ModW16.aOpModReg[0xD5], X86ModW16.aOpModReg[0xDD], + X86ModW16.aOpModReg[0xE5], X86ModW16.aOpModReg[0xED], X86ModW16.aOpModReg[0xF5], X86ModW16.aOpModReg[0xFD], + X86ModW16.aOpModReg[0xC6], X86ModW16.aOpModReg[0xCE], X86ModW16.aOpModReg[0xD6], X86ModW16.aOpModReg[0xDE], + X86ModW16.aOpModReg[0xE6], X86ModW16.aOpModReg[0xEE], X86ModW16.aOpModReg[0xF6], X86ModW16.aOpModReg[0xFE], + X86ModW16.aOpModReg[0xC7], X86ModW16.aOpModReg[0xCF], X86ModW16.aOpModReg[0xD7], X86ModW16.aOpModReg[0xDF], + X86ModW16.aOpModReg[0xE7], X86ModW16.aOpModReg[0xEF], X86ModW16.aOpModReg[0xF7], X86ModW16.aOpModReg[0xFF] +]; + +X86ModW16.aOpModGrp = [ + /** + * opMod16GrpWord00(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord00(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord01(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord01(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord02(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord02(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord03(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord03(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord04(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord04(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord05(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord05(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord06(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord06(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord07(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord07(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord08(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord08(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord09(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord09(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord0A(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0A(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord0B(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0B(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord0C(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0C(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord0D(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0D(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord0E(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0E(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord0F(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord0F(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord10(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord10(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord11(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord11(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord12(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord12(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord13(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord13(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord14(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord14(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord15(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord15(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord16(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord16(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord17(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord17(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord18(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord18(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord19(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord19(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord1A(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1A(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord1B(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1B(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord1C(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1C(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord1D(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1D(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord1E(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1E(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord1F(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord1F(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord20(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord20(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord21(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord21(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord22(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord22(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord23(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord23(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord24(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord24(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord25(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord25(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord26(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord26(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord27(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord27(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord28(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord28(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord29(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord29(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord2A(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2A(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord2B(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2B(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord2C(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2C(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord2D(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2D(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord2E(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2E(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord2F(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord2F(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord30(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord30(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord31(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord31(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord32(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord32(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord33(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord33(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord34(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord34(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord35(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord35(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord36(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord36(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord37(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord37(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord38(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord38(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord39(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord39(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord3A(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3A(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opMod16GrpWord3B(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3B(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opMod16GrpWord3C(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=100 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3C(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regESI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord3D(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=101 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3D(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord3E(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=110 (d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3E(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opMod16GrpWord3F(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=111 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord3F(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opMod16GrpWord40(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord40(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord41(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord41(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord42(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord42(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord43(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord43(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord44(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord44(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord45(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord45(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord46(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord46(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord47(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord47(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord48(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord48(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord49(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord49(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord4A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4A(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord4B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4B(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord4C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4C(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord4D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4D(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord4E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4E(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord4F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord4F(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord50(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord50(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord51(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord51(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord52(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord52(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord53(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord53(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord54(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord54(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord55(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord55(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord56(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord56(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord57(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord57(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord58(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord58(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord59(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord59(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord5A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5A(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord5B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5B(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord5C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5C(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord5D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5D(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord5E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5E(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord5F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord5F(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord60(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord60(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord61(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord61(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord62(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord62(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord63(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord63(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord64(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord64(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord65(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord65(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord66(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord66(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord67(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord67(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord68(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord68(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord69(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord69(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord6A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6A(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord6B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6B(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord6C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6C(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord6D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6D(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord6E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6E(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord6F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord6F(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord70(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord70(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord71(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord71(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord72(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord72(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord73(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord73(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord74(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord74(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord75(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord75(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord76(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord76(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord77(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord77(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord78(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord78(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord79(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord79(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord7A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7A(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord7B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7B(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord7C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7C(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord7D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7D(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord7E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7E(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord7F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord7F(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord80(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord80(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord81(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord81(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord82(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord82(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord83(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord83(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord84(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord84(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord85(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord85(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord86(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord86(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord87(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord87(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord88(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord88(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord89(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord89(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord8A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8A(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord8B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8B(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord8C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8C(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord8D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8D(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord8E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8E(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord8F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord8F(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord90(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord90(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord91(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord91(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord92(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord92(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord93(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord93(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord94(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord94(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord95(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord95(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord96(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord96(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord97(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord97(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord98(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord98(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord99(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord99(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord9A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9A(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWord9B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9B(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWord9C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9C(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord9D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9D(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord9E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9E(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWord9F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWord9F(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordA0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA0(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordA1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA1(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordA2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA2(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordA3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA3(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordA4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA4(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordA5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA5(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordA6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA6(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordA7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA7(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordA8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA8(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordA9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordA9(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordAA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAA(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordAB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAB(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordAC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAC(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordAD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAD(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordAE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAE(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordAF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordAF(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordB0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB0(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordB1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB1(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordB2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB2(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordB3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB3(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordB4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB4(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordB5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB5(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordB6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB6(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordB7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB7(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordB8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB8(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordB9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordB9(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordBA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBA(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opMod16GrpWordBB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBB(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opMod16GrpWordBC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBC(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordBD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBD(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordBE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBE(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordBF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordBF(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPWord()), fnSrc.call(this)); + this.setEAWord(w); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opMod16GrpWordC0(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC0(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC1(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC1(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC2(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC2(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC3(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC3(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC4(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC4(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC5(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC6(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC6(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC7(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC7(afnGrp, fnSrc) { + var w = afnGrp[0].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC8(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC8(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordC9(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordC9(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordCA(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCA(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordCB(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCB(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordCC(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCC(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCD(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordCE(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCE(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordCF(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordCF(afnGrp, fnSrc) { + var w = afnGrp[1].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD0(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD0(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD1(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD1(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD2(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD2(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD3(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD3(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD4(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD4(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD5(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD6(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD6(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD7(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD7(afnGrp, fnSrc) { + var w = afnGrp[2].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD8(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD8(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordD9(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordD9(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordDA(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDA(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordDB(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDB(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordDC(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDC(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDD(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordDE(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDE(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordDF(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordDF(afnGrp, fnSrc) { + var w = afnGrp[3].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE0(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE0(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE1(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE1(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE2(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE2(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE3(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE3(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE4(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE4(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE5(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE6(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE6(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE7(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE7(afnGrp, fnSrc) { + var w = afnGrp[4].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE8(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE8(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordE9(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordE9(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordEA(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordEA(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordEB(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordEB(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordEC(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordEC(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordED(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordED(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordEE(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordEE(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordEF(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordEF(afnGrp, fnSrc) { + var w = afnGrp[5].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF0(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF0(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF1(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF1(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF2(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF2(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF3(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF3(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF4(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF4(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF5(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF6(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF6(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF7(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF7(afnGrp, fnSrc) { + var w = afnGrp[6].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF8(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=000 (AX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF8(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regEAX & this.dataMask, fnSrc.call(this)); + this.regEAX = (this.regEAX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordF9(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=001 (CX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordF9(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regECX & this.dataMask, fnSrc.call(this)); + this.regECX = (this.regECX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordFA(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=010 (DX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFA(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regEDX & this.dataMask, fnSrc.call(this)); + this.regEDX = (this.regEDX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordFB(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=011 (BX) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFB(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regEBX & this.dataMask, fnSrc.call(this)); + this.regEBX = (this.regEBX & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordFC(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=100 (SP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFC(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regESP & this.dataMask, fnSrc.call(this)); + this.regESP = (this.regESP & ~this.dataMask) | w; + }, + /** + * opMod16GrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=101 (BP) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFD(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regEBP & this.dataMask, fnSrc.call(this)); + this.regEBP = (this.regEBP & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordFE(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=110 (SI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFE(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regESI & this.dataMask, fnSrc.call(this)); + this.regESI = (this.regESI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + }, + /** + * opMod16GrpWordFF(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=111 (DI) + * + * @this {X86CPU} + * @param {Array.} afnGrp + * @param {function()} fnSrc + */ + function opMod16GrpWordFF(afnGrp, fnSrc) { + var w = afnGrp[7].call(this, this.regEDI & this.dataMask, fnSrc.call(this)); + this.regEDI = (this.regEDI & ~this.dataMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + } +]; + +if (typeof module !== 'undefined') module.exports = X86ModW16; diff --git a/modules/pcjs/lib/x86op0f.js b/modules/pcjs/lib/x86op0f.js index 11b94b4c6..d8ecce14a 100644 --- a/modules/pcjs/lib/x86op0f.js +++ b/modules/pcjs/lib/x86op0f.js @@ -49,7 +49,7 @@ var X86Op0F = { if ((bModRM & 0x38) < 0x10) { // possible reg values: 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38 this.opFlags |= X86.OPFLAG.NOREAD; } - this.opMod.aOpModGrpWord[bModRM].call(this, this.aOpGrp6, X86Grps.opGrpNoSrc); + this.aOpModGrpWord[bModRM].call(this, this.aOpGrp6, X86Grps.opGrpNoSrc); }, /** * @this {X86CPU} @@ -61,7 +61,7 @@ var X86Op0F = { if (!(bModRM & 0x10)) { this.opFlags |= X86.OPFLAG.NOREAD; } - this.opMod.aOpModGrpWord[bModRM].call(this, X86Op0F.aOpGrp7, X86Grps.opGrpNoSrc); + this.aOpModGrpWord[bModRM].call(this, X86Op0F.aOpGrp7, X86Grps.opGrpNoSrc); }, /** * @this {X86CPU} @@ -69,7 +69,7 @@ var X86Op0F = { * op=0x0F,0x02 (lar reg,rm) */ opLAR: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLAR); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLAR); }, /** * @this {X86CPU} @@ -77,7 +77,7 @@ var X86Op0F = { * op=0x0F,0x03 (lsl reg,rm) */ opLSL: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLSL); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLSL); }, /** * opLOADALL() diff --git a/modules/pcjs/lib/x86opxx.js b/modules/pcjs/lib/x86opxx.js index 1417b33b8..d91fe1562 100644 --- a/modules/pcjs/lib/x86opxx.js +++ b/modules/pcjs/lib/x86opxx.js @@ -53,8 +53,8 @@ var X86OpXX = { * Opcode bytes 0x00 0x00 are sufficiently uncommon that it's more likely we've started executing * in the weeds, so we'll stop the CPU if we're in DEBUG mode. */ - if (DEBUG && !b) this.stopCPU(); - this.opMod.aOpModMemByte[b].call(this, X86Grps.opGrpADDb); + if (DEBUG && DEBUGGER && !b) this.stopCPU(); + this.aOpModMemByte[b].call(this, X86Grps.opGrpADDb); }, /** * op=0x01 (ADD word,reg) @@ -62,7 +62,7 @@ var X86OpXX = { * @this {X86CPU} */ opADDmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpADDw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpADDw); }, /** * op=0x02 (ADD reg,byte) @@ -70,7 +70,7 @@ var X86OpXX = { * @this {X86CPU} */ opADDrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpADDb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpADDb); }, /** * op=0x03 (ADD reg,word) @@ -78,7 +78,7 @@ var X86OpXX = { * @this {X86CPU} */ opADDrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpADDw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpADDw); }, /** * op=0x04 (ADD AL,imm8) @@ -139,7 +139,7 @@ var X86OpXX = { * @this {X86CPU} */ opORmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpORb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpORb); }, /** * op=0x09 (OR word,reg) @@ -147,7 +147,7 @@ var X86OpXX = { * @this {X86CPU} */ opORmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpORw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpORw); }, /** * op=0x0A (OR reg,byte) @@ -155,7 +155,7 @@ var X86OpXX = { * @this {X86CPU} */ opORrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpORb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpORb); }, /** * op=0x0B (OR reg,word) @@ -163,7 +163,7 @@ var X86OpXX = { * @this {X86CPU} */ opORrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpORw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpORw); }, /** * op=0x0C (OR AL,imm8) @@ -227,7 +227,7 @@ var X86OpXX = { * @this {X86CPU} */ opADCmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpADCb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpADCb); }, /** * op=0x11 (ADC word,reg) @@ -235,7 +235,7 @@ var X86OpXX = { * @this {X86CPU} */ opADCmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpADCw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpADCw); }, /** * op=0x12 (ADC reg,byte) @@ -243,7 +243,7 @@ var X86OpXX = { * @this {X86CPU} */ opADCrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpADCb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpADCb); }, /** * op=0x13 (ADC reg,word) @@ -251,7 +251,7 @@ var X86OpXX = { * @this {X86CPU} */ opADCrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpADCw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpADCw); }, /** * op=0x14 (ADC AL,imm8) @@ -307,7 +307,7 @@ var X86OpXX = { * @this {X86CPU} */ opSBBmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpSBBb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpSBBb); }, /** * op=0x19 (SBB word,reg) @@ -315,7 +315,7 @@ var X86OpXX = { * @this {X86CPU} */ opSBBmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpSBBw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpSBBw); }, /** * op=0x1A (SBB reg,byte) @@ -323,7 +323,7 @@ var X86OpXX = { * @this {X86CPU} */ opSBBrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpSBBb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpSBBb); }, /** * op=0x1B (SBB reg,word) @@ -331,7 +331,7 @@ var X86OpXX = { * @this {X86CPU} */ opSBBrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpSBBw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpSBBw); }, /** * op=0x1C (SBB AL,imm8) @@ -387,7 +387,7 @@ var X86OpXX = { * @this {X86CPU} */ opANDmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpANDb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpANDb); }, /** * op=0x21 (AND word,reg) @@ -395,7 +395,7 @@ var X86OpXX = { * @this {X86CPU} */ opANDmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpANDw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpANDw); }, /** * op=0x22 (AND reg,byte) @@ -403,7 +403,7 @@ var X86OpXX = { * @this {X86CPU} */ opANDrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpANDb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpANDb); }, /** * op=0x23 (AND reg,word) @@ -411,7 +411,7 @@ var X86OpXX = { * @this {X86CPU} */ opANDrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpANDw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpANDw); }, /** * op=0x24 (AND AL,imm8) @@ -486,7 +486,7 @@ var X86OpXX = { * @this {X86CPU} */ opSUBmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpSUBb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpSUBb); }, /** * op=0x29 (SUB word,reg) @@ -494,7 +494,7 @@ var X86OpXX = { * @this {X86CPU} */ opSUBmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpSUBw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpSUBw); }, /** * op=0x2A (SUB reg,byte) @@ -502,7 +502,7 @@ var X86OpXX = { * @this {X86CPU} */ opSUBrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpSUBb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpSUBb); }, /** * op=0x2B (SUB reg,word) @@ -510,7 +510,7 @@ var X86OpXX = { * @this {X86CPU} */ opSUBrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpSUBw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpSUBw); }, /** * op=0x2C (SUB AL,imm8) @@ -585,7 +585,7 @@ var X86OpXX = { * @this {X86CPU} */ opXORmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpXORb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpXORb); }, /** * op=0x31 (XOR word,reg) @@ -593,7 +593,7 @@ var X86OpXX = { * @this {X86CPU} */ opXORmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpXORw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpXORw); }, /** * op=0x32 (XOR reg,byte) @@ -601,7 +601,7 @@ var X86OpXX = { * @this {X86CPU} */ opXORrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpXORb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpXORb); }, /** * op=0x33 (XOR reg,word) @@ -609,7 +609,7 @@ var X86OpXX = { * @this {X86CPU} */ opXORrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpXORw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpXORw); }, /** * op=0x34 (XOR AL,imm8) @@ -684,7 +684,7 @@ var X86OpXX = { * @this {X86CPU} */ opCMPmb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); }, /** * op=0x39 (CMP word,reg) @@ -692,7 +692,7 @@ var X86OpXX = { * @this {X86CPU} */ opCMPmw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); }, /** * op=0x3A (CMP reg,byte) @@ -700,7 +700,7 @@ var X86OpXX = { * @this {X86CPU} */ opCMPrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); + this.aOpModRegByte[this.getIPByte()].call(this, X86Grps.opGrpCMPb); }, /** * op=0x3B (CMP reg,word) @@ -708,7 +708,7 @@ var X86OpXX = { * @this {X86CPU} */ opCMPrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); + this.aOpModRegWord[this.getIPByte()].call(this, X86Grps.opGrpCMPw); }, /** * op=0x3C (CMP AL,imm8) @@ -1249,7 +1249,7 @@ var X86OpXX = { * @this {X86CPU} */ opBOUND: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpBOUND); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpBOUND); }, /** * op=0x63 (ARPL word,reg) (80286 and up) @@ -1257,7 +1257,7 @@ var X86OpXX = { * @this {X86CPU} */ opARPL: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpARPL); + this.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpARPL); }, /** * op=0x66 (OS:) (80386 and up) @@ -1267,11 +1267,13 @@ var X86OpXX = { * @this {X86CPU} */ opOS: function() { - this.opFlags |= X86.OPFLAG.SEG; - this.dataSize ^= 0x6; // that which is 2 shall become 4, and vice versa - this.dataMask ^= 0xffff0000; // that which is 0x0000ffff shall become 0xffffffff, and vice versa - this.opMem = this.aaOpMem[this.dataSize]; - this.nStepCycles -= this.CYCLES.nOpCyclesPrefix; + if (I386) { + this.opFlags |= X86.OPFLAG.SEG; + this.dataSize ^= 0x6; // that which is 2 shall become 4, and vice versa + this.dataMask ^= 0xffff0000; // that which is 0x0000ffff shall become 0xffffffff, and vice versa + this.opMem = this.aaOpMem[this.dataSize]; + this.nStepCycles -= this.CYCLES.nOpCyclesPrefix; + } }, /** * op=0x67 (AS:) (80386 and up) @@ -1281,11 +1283,13 @@ var X86OpXX = { * @this {X86CPU} */ opAS: function() { - this.opFlags |= X86.OPFLAG.SEG; - this.addrSize ^= 0x06; // that which is 2 shall become 4, and vice versa - this.addrMask ^= 0xffff0000; // that which is 0x0000ffff shall become 0xffffffff, and vice versa - this.opMod = this.aaOpMod[this.addrSize]; - this.nStepCycles -= this.CYCLES.nOpCyclesPrefix; + if (I386) { + this.opFlags |= X86.OPFLAG.SEG; + this.addrSize ^= 0x06; // that which is 2 shall become 4, and vice versa + this.addrMask ^= 0xffff0000; // that which is 0x0000ffff shall become 0xffffffff, and vice versa + this.setOpMod(); + this.nStepCycles -= this.CYCLES.nOpCyclesPrefix; + } }, /** * op=0x68 (PUSH imm16) (80186/80188 and up) @@ -1302,7 +1306,7 @@ var X86OpXX = { * @this {X86CPU} */ opIMUL16: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpIMUL16); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpIMUL16); }, /** * op=0x6A (PUSH imm8) (80186/80188 and up) @@ -1320,7 +1324,7 @@ var X86OpXX = { * @this {X86CPU} */ opIMUL8: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpIMUL8); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpIMUL8); }, /** * op=0x6C (INSB) (80186/80188 and up) @@ -1743,7 +1747,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp1b: function() { - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp1b, this.getIPByte); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp1b, this.getIPByte); this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1752,7 +1756,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp1w: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp1w, this.getIPWord); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp1w, this.getIPWord); this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1761,7 +1765,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp1sw: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp1w, this.getIPDisp); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp1w, this.getIPDisp); this.nStepCycles -= (this.regEAWrite < 0? 1 : this.CYCLES.nOpCyclesArithMID); }, /** @@ -1770,7 +1774,7 @@ var X86OpXX = { * @this {X86CPU} */ opTESTrb: function() { - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Help.opHelpTESTb); + this.aOpModMemByte[this.getIPByte()].call(this, X86Help.opHelpTESTb); }, /** * op=0x85 (TEST reg,word) @@ -1778,7 +1782,7 @@ var X86OpXX = { * @this {X86CPU} */ opTESTrw: function() { - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpTESTw); + this.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpTESTw); }, /** * op=0x86 (XCHG reg,byte) @@ -1807,7 +1811,7 @@ var X86OpXX = { * this.regEDX = (this.regEDX & 0xff) | (b << 8); * } */ - this.opMod.aOpModRegByte[this.bModRM = this.getIPByte()].call(this, X86Help.opHelpXCHGrb); + this.aOpModRegByte[this.bModRM = this.getIPByte()].call(this, X86Help.opHelpXCHGrb); }, /** * op=0x87 (XCHG reg,word) @@ -1818,7 +1822,7 @@ var X86OpXX = { * @this {X86CPU} */ opXCHGrw: function() { - this.opMod.aOpModRegWord[this.bModRM = this.getIPByte()].call(this, X86Help.opHelpXCHGrw); + this.aOpModRegWord[this.bModRM = this.getIPByte()].call(this, X86Help.opHelpXCHGrw); }, /** * op=0x88 (MOV byte,reg) @@ -1830,7 +1834,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModMemByte[this.getIPByte()].call(this, X86Help.opHelpMOV); + this.aOpModMemByte[this.getIPByte()].call(this, X86Help.opHelpMOV); }, /** * op=0x89 (MOV word,reg) @@ -1842,7 +1846,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpMOV); + this.aOpModMemWord[this.getIPByte()].call(this, X86Help.opHelpMOV); }, /** * op=0x8A (MOV reg,byte) @@ -1850,7 +1854,7 @@ var X86OpXX = { * @this {X86CPU} */ opMOVrb: function() { - this.opMod.aOpModRegByte[this.getIPByte()].call(this, X86Help.opHelpMOV); + this.aOpModRegByte[this.getIPByte()].call(this, X86Help.opHelpMOV); }, /** * op=0x8B (MOV reg,word) @@ -1858,7 +1862,7 @@ var X86OpXX = { * @this {X86CPU} */ opMOVrw: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpMOV); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpMOV); }, /** * op=0x8C (MOV word,sr) @@ -1893,7 +1897,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModMemWord[bModRM].call(this, X86Help.opHelpMOVSegSrc); + this.aOpModMemWord[bModRM].call(this, X86Help.opHelpMOVSegSrc); }, /** * op=0x8D (LEA reg,word) @@ -1903,7 +1907,7 @@ var X86OpXX = { opLEA: function() { this.opFlags |= X86.OPFLAG.NOREAD; this.segData = this.segStack = this.segNULL; // we can't have the EA calculation, if any, "polluted" by segment arithmetic - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLEA); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLEA); }, /** * op=0x8E (MOV sr,word) @@ -1954,7 +1958,7 @@ var X86OpXX = { } break; } - this.opMod.aOpModRegWord[bModRM].call(this, X86Help.opHelpMOV); + this.aOpModRegWord[bModRM].call(this, X86Help.opHelpMOV); switch (reg) { case 0x0: this.setES(this.regEAX); @@ -2002,7 +2006,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpPOPw, this.popWord); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpPOPw, this.popWord); }, /** * op=0x90 (NOP, aka XCHG AX,AX) @@ -2892,7 +2896,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2bi: function() { - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2CountImm); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2CountImm); }, /** * op=0xC1 (GRP2 word,imm16) (80186/80188 and up) @@ -2900,7 +2904,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2wi: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2CountImm); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2CountImm); }, /** * op=0xC2 (RET n) @@ -2931,7 +2935,7 @@ var X86OpXX = { /* * This is like a "MOV reg,rm" operation, but it also loads ES from the next word. */ - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLES); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLES); }, /** * op=0xC5 (LDS reg,word) @@ -2942,7 +2946,7 @@ var X86OpXX = { /* * This is like a "MOV reg,rm" operation, but it also loads DS from the next word. */ - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLDS); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpLDS); }, /** * op=0xC6 (MOV byte,imm8) @@ -2954,7 +2958,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPByte); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPByte); }, /** * op=0xC7 (MOV word,imm16) @@ -2966,7 +2970,7 @@ var X86OpXX = { * Like other MOV operations, the destination does not need to be read, just written. */ this.opFlags |= X86.OPFLAG.NOREAD; - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPWord); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrpMOVImm, this.getIPWord); }, /** * op=0xC8 (ENTER imm16,imm8) (80186/80188 and up) @@ -3093,7 +3097,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2b1: function() { - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2Count1); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2Count1); }, /** * op=0xD1 (GRP2 word,1) @@ -3101,7 +3105,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2w1: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2Count1); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2Count1); }, /** * op=0xD2 (GRP2 byte,CL) @@ -3109,7 +3113,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2bCL: function() { - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2CountCL); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp2b, X86Grps.opGrp2CountCL); }, /** * op=0xD3 (GRP2 word,CL) @@ -3117,7 +3121,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp2wCL: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2CountCL); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp2w, X86Grps.opGrp2CountCL); }, /** * op=0xD4 0x0A (AAM) @@ -3196,7 +3200,7 @@ var X86OpXX = { * @this {X86CPU} */ opESC: function() { - this.opMod.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpESC); + this.aOpModRegWord[this.getIPByte()].call(this, X86Help.opHelpESC); this.nStepCycles -= 8; // TODO: Fix }, /** @@ -3497,7 +3501,7 @@ var X86OpXX = { */ opGrp3b: function() { this.regMD16 = -1; - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp3b, X86Grps.opGrpNoSrc); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp3b, X86Grps.opGrpNoSrc); if (this.regMD16 >= 0) this.regEAX = this.regMD16; }, /** @@ -3520,7 +3524,7 @@ var X86OpXX = { */ opGrp3w: function() { this.regMD16 = -1; - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp3w, X86Grps.opGrpNoSrc); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp3w, X86Grps.opGrpNoSrc); if (this.regMD16 >= 0) { this.regEAX = this.regMD16; this.regEDX = this.regMD32; @@ -3587,7 +3591,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp4b: function() { - this.opMod.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp4b, X86Grps.opGrpNoSrc); + this.aOpModGrpByte[this.getIPByte()].call(this, X86Grps.aOpGrp4b, X86Grps.opGrpNoSrc); }, /** * op=0xFF (GRP4 word) @@ -3595,7 +3599,7 @@ var X86OpXX = { * @this {X86CPU} */ opGrp4w: function() { - this.opMod.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp4w, X86Grps.opGrpNoSrc); + this.aOpModGrpWord[this.getIPByte()].call(this, X86Grps.aOpGrp4w, X86Grps.opGrpNoSrc); } }; diff --git a/package.json b/package.json index 3a2e0e36a..c7393305d 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,8 @@ "./modules/pcjs/lib/x86help.js", "./modules/pcjs/lib/x86modb.js", "./modules/pcjs/lib/x86modw.js", + "./modules/pcjs/lib/x86modb16.js", + "./modules/pcjs/lib/x86modw16.js", "./modules/pcjs/lib/x86modb32.js", "./modules/pcjs/lib/x86modw32.js", "./modules/pcjs/lib/x86modsib.js",