9013 lines
349 KiB
JavaScript
9013 lines
349 KiB
JavaScript
/**
|
|
* @fileoverview Implements PCjs 8086 mode-byte decoding.
|
|
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
|
|
* @version 1.0
|
|
* Created 2012-Sep-05
|
|
*
|
|
* Copyright © 2012-2015 Jeff Parsons <Jeff@pcjs.org>
|
|
*
|
|
* This file is part of PCjs, which is part of the JavaScript Machines Project (aka JSMachines)
|
|
* at <http://jsmachines.net/> and <http://pcjs.org/>.
|
|
*
|
|
* 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 <http://www.gnu.org/licenses/gpl.html>.
|
|
*
|
|
* 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 X86ModW = {};
|
|
|
|
X86ModW.aOpModReg = [
|
|
/**
|
|
* opModRegWord00(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord00(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord01(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord01(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord02(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord02(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord03(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord03(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord04(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord04(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord05(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord05(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord06(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord06(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord07(fn): mod=00 (src:mem) reg=000 (dst:AX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord07(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord08(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord08(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord09(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord09(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord0A(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0A(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord0B(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0B(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord0C(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0C(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord0D(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0D(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord0E(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0E(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord0F(fn): mod=00 (src:mem) reg=001 (dst:CX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord0F(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord10(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord10(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord11(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord11(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord12(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord12(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord13(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord13(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord14(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord14(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord15(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord15(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord16(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord16(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord17(fn): mod=00 (src:mem) reg=010 (dst:DX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord17(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord18(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord18(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord19(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord19(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord1A(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1A(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord1B(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1B(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord1C(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1C(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord1D(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1D(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord1E(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1E(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord1F(fn): mod=00 (src:mem) reg=011 (dst:BX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord1F(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord20(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord20(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord21(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord21(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord22(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord22(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord23(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord23(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord24(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord24(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord25(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord25(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord26(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord26(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord27(fn): mod=00 (src:mem) reg=100 (dst:SP) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord27(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX)));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord28(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord28(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord29(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord29(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord2A(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2A(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord2B(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2B(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord2C(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2C(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord2D(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2D(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord2E(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2E(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord2F(fn): mod=00 (src:mem) reg=101 (dst:BP) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord2F(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord30(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord30(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord31(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord31(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord32(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord32(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord33(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord33(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord34(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord34(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord35(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord35(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord36(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord36(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord37(fn): mod=00 (src:mem) reg=110 (dst:SI) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord37(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord38(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord38(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord39(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord39(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord3A(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3A(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModRegWord3B(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3B(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModRegWord3C(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3C(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord3D(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3D(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord3E(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3E(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModRegWord3F(fn): mod=00 (src:mem) reg=111 (dst:DI) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord3F(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModRegWord40(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord40(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord41(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord41(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord42(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord42(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord43(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord43(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord44(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord44(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord45(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord45(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord46(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord46(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord47(fn): mod=01 (src:mem+d8) reg=000 (dst:AX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord47(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord48(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord48(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord49(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord49(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord4A(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4A(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord4B(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4B(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord4C(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4C(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord4D(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4D(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord4E(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4E(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord4F(fn): mod=01 (src:mem+d8) reg=001 (dst:CX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord4F(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord50(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord50(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord51(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord51(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord52(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord52(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord53(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord53(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord54(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord54(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord55(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord55(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord56(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord56(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord57(fn): mod=01 (src:mem+d8) reg=010 (dst:DX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord57(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord58(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord58(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord59(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord59(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord5A(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5A(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord5B(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5B(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord5C(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5C(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord5D(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5D(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord5E(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5E(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord5F(fn): mod=01 (src:mem+d8) reg=011 (dst:BX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord5F(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord60(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord60(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord61(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord61(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord62(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord62(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord63(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord63(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord64(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord64(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord65(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord65(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord66(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord66(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord67(fn): mod=01 (src:mem+d8) reg=100 (dst:SP) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord67(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.getIPDisp())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord68(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord68(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord69(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord69(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord6A(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6A(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord6B(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6B(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord6C(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6C(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord6D(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6D(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord6E(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6E(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord6F(fn): mod=01 (src:mem+d8) reg=101 (dst:BP) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord6F(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord70(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord70(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord71(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord71(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord72(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord72(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord73(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord73(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord74(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord74(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord75(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord75(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord76(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord76(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord77(fn): mod=01 (src:mem+d8) reg=110 (dst:SI) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord77(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord78(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord78(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord79(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord79(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord7A(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7A(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord7B(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7B(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord7C(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7C(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord7D(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7D(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord7E(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7E(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord7F(fn): mod=01 (src:mem+d8) reg=111 (dst:DI) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord7F(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPDisp()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord80(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord80(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord81(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord81(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord82(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord82(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord83(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord83(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord84(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord84(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord85(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord85(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord86(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord86(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord87(fn): mod=10 (src:mem+d16) reg=000 (dst:AX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord87(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord88(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord88(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord89(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord89(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord8A(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8A(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord8B(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8B(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord8C(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8C(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord8D(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8D(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord8E(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8E(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord8F(fn): mod=10 (src:mem+d16) reg=001 (dst:CX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord8F(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord90(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord90(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord91(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord91(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord92(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord92(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord93(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord93(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord94(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord94(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord95(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord95(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord96(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord96(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord97(fn): mod=10 (src:mem+d16) reg=010 (dst:DX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord97(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord98(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord98(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord99(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord99(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord9A(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9A(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWord9B(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9B(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWord9C(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9C(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord9D(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9D(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord9E(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9E(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWord9F(fn): mod=10 (src:mem+d16) reg=011 (dst:BX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWord9F(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA0(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA0(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA1(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA1(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordA2(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA2(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordA3(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA3(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA4(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA4(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regESI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA5(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA5(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEDI + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA6(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA6(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordStack(this.regEBP + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA7(fn): mod=10 (src:mem+d16) reg=100 (dst:SP) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA7(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getEAWordData(this.regEBX + this.getIPAddr())));
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA8(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA8(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordA9(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordA9(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordAA(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAA(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordAB(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAB(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordAC(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAC(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordAD(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAD(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordAE(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAE(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordAF(fn): mod=10 (src:mem+d16) reg=101 (dst:BP) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordAF(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB0(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB0(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB1(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB1(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordB2(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB2(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordB3(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB3(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB4(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB4(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB5(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB5(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB6(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB6(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB7(fn): mod=10 (src:mem+d16) reg=110 (dst:SI) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB7(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB8(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB8(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordB9(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordB9(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordBA(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBA(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModRegWordBB(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBB(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModRegWordBC(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBC(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regESI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordBD(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBD(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEDI + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordBE(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBE(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordStack(this.regEBP + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordBF(fn): mod=10 (src:mem+d16) reg=111 (dst:DI) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordBF(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getEAWordData(this.regEBX + this.getIPAddr()));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModRegWordC0(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC0(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regEAX);
|
|
},
|
|
/**
|
|
* opModRegWordC1(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC1(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC2(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC2(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC3(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC3(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC4(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC4(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC5(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC5(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC6(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC6(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC7(fn): mod=11 (src:reg) reg=000 (dst:AX) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC7(fn) {
|
|
this.regEAX = fn.call(this, this.regEAX, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC8(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC8(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordC9(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordC9(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regECX);
|
|
},
|
|
/**
|
|
* opModRegWordCA(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCA(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordCB(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCB(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordCC(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCC(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordCD(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCD(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordCE(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCE(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordCF(fn): mod=11 (src:reg) reg=001 (dst:CX) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordCF(fn) {
|
|
this.regECX = fn.call(this, this.regECX, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD0(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD0(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD1(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD1(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD2(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD2(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regEDX);
|
|
},
|
|
/**
|
|
* opModRegWordD3(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD3(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD4(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD4(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD5(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD5(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD6(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD6(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD7(fn): mod=11 (src:reg) reg=010 (dst:DX) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD7(fn) {
|
|
this.regEDX = fn.call(this, this.regEDX, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD8(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD8(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordD9(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordD9(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordDA(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDA(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordDB(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDB(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regEBX);
|
|
},
|
|
/**
|
|
* opModRegWordDC(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDC(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordDD(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDD(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordDE(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDE(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordDF(fn): mod=11 (src:reg) reg=011 (dst:BX) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordDF(fn) {
|
|
this.regEBX = fn.call(this, this.regEBX, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordE0(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE0(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regEAX));
|
|
},
|
|
/**
|
|
* opModRegWordE1(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE1(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regECX));
|
|
},
|
|
/**
|
|
* opModRegWordE2(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE2(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regEDX));
|
|
},
|
|
/**
|
|
* opModRegWordE3(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE3(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regEBX));
|
|
},
|
|
/**
|
|
* opModRegWordE4(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE4(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.getSP()));
|
|
},
|
|
/**
|
|
* opModRegWordE5(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE5(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regEBP));
|
|
},
|
|
/**
|
|
* opModRegWordE6(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE6(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regESI));
|
|
},
|
|
/**
|
|
* opModRegWordE7(fn): mod=11 (src:reg) reg=100 (dst:SP) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE7(fn) {
|
|
this.setSP(fn.call(this, this.getSP(), this.regEDI));
|
|
},
|
|
/**
|
|
* opModRegWordE8(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE8(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordE9(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordE9(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordEA(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordEA(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordEB(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordEB(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordEC(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordEC(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordED(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordED(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regEBP);
|
|
},
|
|
/**
|
|
* opModRegWordEE(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordEE(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordEF(fn): mod=11 (src:reg) reg=101 (dst:BP) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordEF(fn) {
|
|
this.regEBP = fn.call(this, this.regEBP, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF0(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF0(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF1(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF1(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF2(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF2(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF3(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF3(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF4(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF4(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF5(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF5(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF6(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF6(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regESI);
|
|
},
|
|
/**
|
|
* opModRegWordF7(fn): mod=11 (src:reg) reg=110 (dst:SI) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF7(fn) {
|
|
this.regESI = fn.call(this, this.regESI, this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF8(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF8(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordF9(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordF9(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFA(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFA(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFB(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFB(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFC(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFC(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFD(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFD(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFE(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFE(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModRegWordFF(fn): mod=11 (src:reg) reg=111 (dst:DI) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModRegWordFF(fn) {
|
|
this.regEDI = fn.call(this, this.regEDI, this.regEDI);
|
|
}
|
|
];
|
|
|
|
X86ModW.aOpModMem = [
|
|
/**
|
|
* opModMemWord00(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord00(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord01(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord01(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord02(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord02(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord03(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord03(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord04(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord04(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord05(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord05(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord06(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord06(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord07(fn): mod=00 (dst:mem) reg=000 (src:AX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord07(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord08(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord08(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord09(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord09(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord0A(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord0B(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord0C(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord0D(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord0E(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0E(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord0F(fn): mod=00 (dst:mem) reg=001 (src:CX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord0F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord10(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord10(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord11(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord11(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord12(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord12(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord13(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord13(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord14(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord14(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord15(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord15(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord16(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord16(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord17(fn): mod=00 (dst:mem) reg=010 (src:DX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord17(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord18(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord18(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord19(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord19(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord1A(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord1B(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord1C(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord1D(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord1E(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1E(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord1F(fn): mod=00 (dst:mem) reg=011 (src:BX) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord1F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord20(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord20(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord21(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord21(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord22(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord22(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord23(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord23(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord24(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord24(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord25(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord25(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord26(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord26(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord27(fn): mod=00 (dst:mem) reg=100 (src:SP) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord27(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord28(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord28(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord29(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord29(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord2A(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord2B(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord2C(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord2D(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord2E(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2E(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord2F(fn): mod=00 (dst:mem) reg=101 (src:BP) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord2F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord30(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord30(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord31(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord31(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord32(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord32(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord33(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord33(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord34(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord34(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord35(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord35(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord36(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord36(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord37(fn): mod=00 (dst:mem) reg=110 (src:SI) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord37(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord38(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord38(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord39(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord39(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord3A(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModMemWord3B(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModMemWord3C(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord3D(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord3E(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3E(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModMemWord3F(fn): mod=00 (dst:mem) reg=111 (src:DI) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord3F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModMemWord40(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord40(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord41(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord41(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord42(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord42(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord43(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord43(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord44(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord44(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord45(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord45(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord46(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord46(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord47(fn): mod=01 (dst:mem+d8) reg=000 (src:AX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord47(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord48(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord48(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord49(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord49(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord4A(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord4B(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord4C(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord4D(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord4E(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord4F(fn): mod=01 (dst:mem+d8) reg=001 (src:CX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord4F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord50(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord50(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord51(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord51(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord52(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord52(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord53(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord53(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord54(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord54(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord55(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord55(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord56(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord56(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord57(fn): mod=01 (dst:mem+d8) reg=010 (src:DX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord57(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord58(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord58(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord59(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord59(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord5A(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord5B(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord5C(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord5D(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord5E(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord5F(fn): mod=01 (dst:mem+d8) reg=011 (src:BX) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord5F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord60(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord60(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord61(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord61(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord62(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord62(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord63(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord63(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord64(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord64(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord65(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord65(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord66(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord66(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord67(fn): mod=01 (dst:mem+d8) reg=100 (src:SP) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord67(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord68(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord68(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord69(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord69(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord6A(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord6B(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord6C(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord6D(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord6E(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord6F(fn): mod=01 (dst:mem+d8) reg=101 (src:BP) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord6F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord70(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord70(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord71(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord71(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord72(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord72(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord73(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord73(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord74(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord74(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord75(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord75(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord76(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord76(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord77(fn): mod=01 (dst:mem+d8) reg=110 (src:SI) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord77(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord78(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord78(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord79(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord79(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord7A(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord7B(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord7C(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord7D(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord7E(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord7F(fn): mod=01 (dst:mem+d8) reg=111 (src:DI) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord7F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord80(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord80(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord81(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord81(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord82(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord82(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord83(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord83(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord84(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord84(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord85(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord85(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord86(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord86(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord87(fn): mod=10 (dst:mem+d16) reg=000 (src:AX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord87(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEAX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord88(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord88(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord89(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord89(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord8A(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord8B(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord8C(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord8D(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord8E(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord8F(fn): mod=10 (dst:mem+d16) reg=001 (src:CX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord8F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regECX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord90(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord90(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord91(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord91(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord92(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord92(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord93(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord93(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord94(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord94(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord95(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord95(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord96(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord96(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord97(fn): mod=10 (dst:mem+d16) reg=010 (src:DX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord97(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord98(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord98(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord99(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord99(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord9A(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9A(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWord9B(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9B(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWord9C(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9C(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord9D(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9D(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord9E(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9E(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWord9F(fn): mod=10 (dst:mem+d16) reg=011 (src:BX) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWord9F(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBX);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA0(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA0(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA1(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA1(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordA2(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA2(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordA3(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA3(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA4(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA4(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA5(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA5(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA6(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA6(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA7(fn): mod=10 (dst:mem+d16) reg=100 (src:SP) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA7(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.getSP());
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA8(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA8(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordA9(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordA9(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordAA(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAA(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordAB(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAB(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordAC(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAC(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordAD(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAD(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordAE(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAE(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordAF(fn): mod=10 (dst:mem+d16) reg=101 (src:BP) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordAF(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEBP);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB0(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB0(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB1(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB1(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordB2(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB2(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordB3(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB3(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB4(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB4(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB5(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB5(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB6(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB6(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB7(fn): mod=10 (dst:mem+d16) reg=110 (src:SI) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB7(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regESI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB8(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB8(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordB9(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordB9(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordBA(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBA(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModMemWordBB(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBB(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModMemWordBC(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBC(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regESI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordBD(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBD(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordBE(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBE(fn) {
|
|
var w = fn.call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModMemWordBF(fn): mod=10 (dst:mem+d16) reg=111 (src:DI) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {function(number,number)} fn (dst,src)
|
|
*/
|
|
function opModMemWordBF(fn) {
|
|
var w = fn.call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), this.regEDI);
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi;
|
|
}
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
X86ModW.aOpModReg[0xC0], X86ModW.aOpModReg[0xC8], X86ModW.aOpModReg[0xD0], X86ModW.aOpModReg[0xD8],
|
|
X86ModW.aOpModReg[0xE0], X86ModW.aOpModReg[0xE8], X86ModW.aOpModReg[0xF0], X86ModW.aOpModReg[0xF8],
|
|
X86ModW.aOpModReg[0xC1], X86ModW.aOpModReg[0xC9], X86ModW.aOpModReg[0xD1], X86ModW.aOpModReg[0xD9],
|
|
X86ModW.aOpModReg[0xE1], X86ModW.aOpModReg[0xE9], X86ModW.aOpModReg[0xF1], X86ModW.aOpModReg[0xF9],
|
|
X86ModW.aOpModReg[0xC2], X86ModW.aOpModReg[0xCA], X86ModW.aOpModReg[0xD2], X86ModW.aOpModReg[0xDA],
|
|
X86ModW.aOpModReg[0xE2], X86ModW.aOpModReg[0xEA], X86ModW.aOpModReg[0xF2], X86ModW.aOpModReg[0xFA],
|
|
X86ModW.aOpModReg[0xC3], X86ModW.aOpModReg[0xCB], X86ModW.aOpModReg[0xD3], X86ModW.aOpModReg[0xDB],
|
|
X86ModW.aOpModReg[0xE3], X86ModW.aOpModReg[0xEB], X86ModW.aOpModReg[0xF3], X86ModW.aOpModReg[0xFB],
|
|
X86ModW.aOpModReg[0xC4], X86ModW.aOpModReg[0xCC], X86ModW.aOpModReg[0xD4], X86ModW.aOpModReg[0xDC],
|
|
X86ModW.aOpModReg[0xE4], X86ModW.aOpModReg[0xEC], X86ModW.aOpModReg[0xF4], X86ModW.aOpModReg[0xFC],
|
|
X86ModW.aOpModReg[0xC5], X86ModW.aOpModReg[0xCD], X86ModW.aOpModReg[0xD5], X86ModW.aOpModReg[0xDD],
|
|
X86ModW.aOpModReg[0xE5], X86ModW.aOpModReg[0xED], X86ModW.aOpModReg[0xF5], X86ModW.aOpModReg[0xFD],
|
|
X86ModW.aOpModReg[0xC6], X86ModW.aOpModReg[0xCE], X86ModW.aOpModReg[0xD6], X86ModW.aOpModReg[0xDE],
|
|
X86ModW.aOpModReg[0xE6], X86ModW.aOpModReg[0xEE], X86ModW.aOpModReg[0xF6], X86ModW.aOpModReg[0xFE],
|
|
X86ModW.aOpModReg[0xC7], X86ModW.aOpModReg[0xCF], X86ModW.aOpModReg[0xD7], X86ModW.aOpModReg[0xDF],
|
|
X86ModW.aOpModReg[0xE7], X86ModW.aOpModReg[0xEF], X86ModW.aOpModReg[0xF7], X86ModW.aOpModReg[0xFF]
|
|
];
|
|
|
|
X86ModW.aOpModGrp = [
|
|
/**
|
|
* opModGrpWord00(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord00(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord01(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord01(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord02(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord02(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord03(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord03(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord04(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord04(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord05(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord05(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord06(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord06(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord07(afnGrp, fnSrc): mod=00 (dst:mem) reg=000 (afnGrp[0]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord07(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord08(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord08(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord09(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord09(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord0A(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0A(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord0B(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0B(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord0C(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0C(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord0D(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0D(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord0E(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0E(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord0F(afnGrp, fnSrc): mod=00 (dst:mem) reg=001 (afnGrp[1]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord0F(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord10(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord10(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord11(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord11(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord12(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord12(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord13(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord13(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord14(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord14(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord15(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord15(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord16(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord16(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord17(afnGrp, fnSrc): mod=00 (dst:mem) reg=010 (afnGrp[2]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord17(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord18(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord18(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord19(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord19(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord1A(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1A(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord1B(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1B(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord1C(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1C(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord1D(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1D(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord1E(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1E(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord1F(afnGrp, fnSrc): mod=00 (dst:mem) reg=011 (afnGrp[3]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord1F(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord20(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord20(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord21(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord21(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord22(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord22(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord23(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord23(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord24(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord24(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord25(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord25(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord26(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord26(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord27(afnGrp, fnSrc): mod=00 (dst:mem) reg=100 (afnGrp[4]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord27(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord28(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord28(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord29(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord29(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord2A(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2A(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord2B(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2B(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord2C(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2C(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord2D(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2D(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord2E(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2E(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord2F(afnGrp, fnSrc): mod=00 (dst:mem) reg=101 (afnGrp[5]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord2F(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord30(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord30(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord31(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord31(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord32(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord32(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord33(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord33(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord34(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord34(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord35(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord35(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord36(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord36(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord37(afnGrp, fnSrc): mod=00 (dst:mem) reg=110 (afnGrp[6]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord37(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord38(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=000 (BX+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord38(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord39(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=001 (BX+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord39(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord3A(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=010 (BP+SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3A(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord3B(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=011 (BP+DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3B(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndex;
|
|
},
|
|
/**
|
|
* opModGrpWord3C(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=100 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3C(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regESI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord3D(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=101 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3D(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord3E(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=110 (d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3E(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord3F(afnGrp, fnSrc): mod=00 (dst:mem) reg=111 (afnGrp[7]) r/m=111 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord3F(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBase;
|
|
},
|
|
/**
|
|
* opModGrpWord40(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord40(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord41(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord41(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord42(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord42(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord43(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord43(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord44(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord44(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord45(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord45(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord46(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord46(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord47(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=000 (afnGrp[0]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord47(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord48(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord48(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord49(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord49(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord4A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4A(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord4B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4B(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord4C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4C(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord4D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4D(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord4E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4E(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord4F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=001 (afnGrp[1]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord4F(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord50(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord50(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord51(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord51(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord52(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord52(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord53(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord53(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord54(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord54(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord55(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord55(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord56(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord56(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord57(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=010 (afnGrp[2]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord57(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord58(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord58(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord59(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord59(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord5A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5A(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord5B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5B(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord5C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5C(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord5D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5D(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord5E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5E(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord5F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=011 (afnGrp[3]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord5F(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord60(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord60(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord61(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord61(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord62(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord62(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord63(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord63(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord64(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord64(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord65(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord65(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord66(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord66(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord67(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=100 (afnGrp[4]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord67(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord68(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord68(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord69(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord69(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord6A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6A(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord6B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6B(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord6C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6C(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord6D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6D(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord6E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6E(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord6F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=101 (afnGrp[5]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord6F(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord70(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord70(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord71(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord71(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord72(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord72(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord73(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord73(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord74(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord74(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord75(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord75(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord76(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord76(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord77(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=110 (afnGrp[6]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord77(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord78(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord78(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord79(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord79(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord7A(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7A(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord7B(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7B(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord7C(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=100 (SI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7C(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord7D(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=101 (DI+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7D(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord7E(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=110 (BP+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7E(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord7F(afnGrp, fnSrc): mod=01 (dst:mem+d8) reg=111 (afnGrp[7]) r/m=111 (BX+d8)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord7F(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPDisp()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord80(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord80(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord81(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord81(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord82(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord82(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord83(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord83(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord84(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord84(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord85(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord85(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord86(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord86(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord87(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=000 (afnGrp[0]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord87(afnGrp, fnSrc) {
|
|
var w = afnGrp[0].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord88(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord88(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord89(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord89(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord8A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8A(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord8B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8B(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord8C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8C(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord8D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8D(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord8E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8E(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord8F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=001 (afnGrp[1]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord8F(afnGrp, fnSrc) {
|
|
var w = afnGrp[1].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord90(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord90(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord91(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord91(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord92(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord92(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord93(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord93(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord94(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord94(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord95(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord95(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord96(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord96(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord97(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=010 (afnGrp[2]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord97(afnGrp, fnSrc) {
|
|
var w = afnGrp[2].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord98(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord98(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord99(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord99(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord9A(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9A(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWord9B(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9B(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord9C(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9C(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord9D(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9D(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord9E(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9E(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWord9F(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=011 (afnGrp[3]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWord9F(afnGrp, fnSrc) {
|
|
var w = afnGrp[3].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA0(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA1(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordA2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA2(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordA3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA3(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA4(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA5(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA6(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=100 (afnGrp[4]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA7(afnGrp, fnSrc) {
|
|
var w = afnGrp[4].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA8(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordA9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordA9(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordAA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAA(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordAB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAB(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordAC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAC(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordAD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAD(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordAE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAE(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordAF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=101 (afnGrp[5]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordAF(afnGrp, fnSrc) {
|
|
var w = afnGrp[5].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB0(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB0(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB1(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB1(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordB2(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB2(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordB3(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB3(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB4(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB4(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB5(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB5(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB6(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB6(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB7(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=110 (afnGrp[6]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB7(afnGrp, fnSrc) {
|
|
var w = afnGrp[6].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB8(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=000 (BX+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB8(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordB9(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=001 (BX+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordB9(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordBA(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=010 (BP+SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBA(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDispExtra;
|
|
},
|
|
/**
|
|
* opModGrpWordBB(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=011 (BP+DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBB(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseIndexDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordBC(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=100 (SI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBC(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regESI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordBD(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=101 (DI+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBD(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEDI + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordBE(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=110 (BP+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBE(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordStack(this.regEBP + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordBF(afnGrp, fnSrc): mod=10 (dst:mem+d16) reg=111 (afnGrp[7]) r/m=111 (BX+d16)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordBF(afnGrp, fnSrc) {
|
|
var w = afnGrp[7].call(this, this.modEAWordData(this.regEBX + this.getIPAddr()), fnSrc.call(this));
|
|
this.setEAWord(w);
|
|
this.nStepCycles -= this.cycleCounts.nEACyclesBaseDisp;
|
|
},
|
|
/**
|
|
* opModGrpWordC0(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC0(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[0].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC1(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC1(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[0].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC2(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC2(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[0].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC3(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC3(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[0].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC4(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC4(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[0].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordC5(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC5(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[0].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC6(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC6(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[0].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC7(afnGrp, fnSrc): mod=11 (dst:reg) reg=000 (afnGrp[0]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC7(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[0].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC8(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC8(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[1].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordC9(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordC9(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[1].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordCA(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCA(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[1].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordCB(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCB(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[1].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordCC(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCC(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[1].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordCD(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCD(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[1].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordCE(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCE(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[1].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordCF(afnGrp, fnSrc): mod=11 (dst:reg) reg=001 (afnGrp[1]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordCF(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[1].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD0(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD0(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[2].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD1(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD1(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[2].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD2(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD2(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[2].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD3(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD3(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[2].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD4(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD4(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[2].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordD5(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD5(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[2].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD6(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD6(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[2].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD7(afnGrp, fnSrc): mod=11 (dst:reg) reg=010 (afnGrp[2]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD7(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[2].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD8(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD8(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[3].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordD9(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordD9(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[3].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordDA(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDA(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[3].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordDB(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDB(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[3].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordDC(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDC(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[3].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordDD(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDD(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[3].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordDE(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDE(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[3].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordDF(afnGrp, fnSrc): mod=11 (dst:reg) reg=011 (afnGrp[3]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordDF(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[3].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE0(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE0(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[4].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE1(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE1(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[4].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE2(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE2(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[4].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE3(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE3(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[4].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE4(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE4(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[4].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordE5(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE5(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[4].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE6(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE6(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[4].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE7(afnGrp, fnSrc): mod=11 (dst:reg) reg=100 (afnGrp[4]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE7(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[4].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE8(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE8(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[5].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordE9(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordE9(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[5].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordEA(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordEA(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[5].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordEB(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordEB(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[5].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordEC(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordEC(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[5].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordED(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordED(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[5].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordEE(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordEE(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[5].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordEF(afnGrp, fnSrc): mod=11 (dst:reg) reg=101 (afnGrp[5]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordEF(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[5].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF0(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF0(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[6].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF1(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF1(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[6].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF2(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF2(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[6].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF3(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF3(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[6].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF4(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF4(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[6].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordF5(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF5(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[6].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF6(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF6(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[6].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF7(afnGrp, fnSrc): mod=11 (dst:reg) reg=110 (afnGrp[6]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF7(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[6].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF8(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=000 (AX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF8(afnGrp, fnSrc) {
|
|
this.regEAX = afnGrp[7].call(this, this.regEAX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordF9(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=001 (CX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordF9(afnGrp, fnSrc) {
|
|
this.regECX = afnGrp[7].call(this, this.regECX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordFA(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=010 (DX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFA(afnGrp, fnSrc) {
|
|
this.regEDX = afnGrp[7].call(this, this.regEDX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordFB(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=011 (BX)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFB(afnGrp, fnSrc) {
|
|
this.regEBX = afnGrp[7].call(this, this.regEBX, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordFC(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=100 (SP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFC(afnGrp, fnSrc) {
|
|
this.setSP(afnGrp[7].call(this, this.getSP(), fnSrc.call(this)));
|
|
},
|
|
/**
|
|
* opModGrpWordFD(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=101 (BP)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFD(afnGrp, fnSrc) {
|
|
this.regEBP = afnGrp[7].call(this, this.regEBP, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordFE(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=110 (SI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFE(afnGrp, fnSrc) {
|
|
this.regESI = afnGrp[7].call(this, this.regESI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi;
|
|
}
|
|
},
|
|
/**
|
|
* opModGrpWordFF(afnGrp, fnSrc): mod=11 (dst:reg) reg=111 (afnGrp[7]) r/m=111 (DI)
|
|
*
|
|
* @this {X86CPU}
|
|
* @param {Array.<function(number,number)>} afnGrp
|
|
* @param {function()} fnSrc
|
|
*/
|
|
function opModGrpWordFF(afnGrp, fnSrc) {
|
|
this.regEDI = afnGrp[7].call(this, this.regEDI, fnSrc.call(this));
|
|
if (BACKTRACK) {
|
|
this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi;
|
|
}
|
|
}
|
|
];
|
|
|
|
if (typeof module !== 'undefined') module.exports = X86ModW;
|