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.