/// <summary> /// SHRD rmreg32,reg32,CL /// </summary> public void SHRD___CL (R32Type target, R32Type source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHRD___CL", target.ToString () + ", " + source.ToString () + ", " + "CL", null, target, source, null, new string [] { "o32", "0F", "AD", "/r" })); }
/// <summary> /// SHR rmreg32,imm8 /// </summary> public void SHR (R32Type target, Byte source) { if (source == 1) this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHR__1", target.ToString () + ", " + "1", null, target, null, null, new string [] { "o32", "D1", "/5" })); else { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHR", target.ToString () + ", " + string.Format ("0x{0:x}", source), null, target, null, new UInt32 [] { source }, new string [] { "o32", "C1", "/5", "ib" })); } }
/// <summary> /// SHRD rmreg32,reg32,imm8 /// </summary> public void SHRD (R32Type target, R32Type source, Byte value) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHRD", target.ToString () + ", " + source.ToString () + ", " + string.Format ("0x{0:x}", value), null, target, source, new UInt32 [] { value }, new string [] { "o32", "0F", "AC", "/r", "ib" })); }
/// <summary> /// BTS rmreg32,imm8 /// </summary> public void BTS (R32Type target, Byte source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BTS", target.ToString () + ", " + string.Format ("0x{0:x}", source), null, target, null, new UInt32 [] { source }, new string [] { "o32", "0F", "BA", "/5", "ib" })); }
/// <summary> /// IMUL reg32,mem32,imm8 /// </summary> public void IMUL (R32Type target, DWordMemory source, Byte value) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "IMUL", target.ToString () + ", " + source.ToString () + ", " + string.Format ("0x{0:x}", value), source, null, target, new UInt32 [] { value }, new string [] { "o32", "6B", "/r", "ib" })); }
/// <summary> /// XCHG mem32,reg32 /// </summary> public void XCHG (DWordMemory target, R32Type source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG", target.ToString () + ", " + source.ToString (), target, null, source, null, new string [] { "o32", "87", "/r" })); }
/// <summary> /// XOR rmreg32,reg32 /// </summary> public void XOR (R32Type target, R32Type source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XOR", target.ToString () + ", " + source.ToString (), null, target, source, null, new string [] { "o32", "31", "/r" })); }
/// <summary> /// BOUND reg32,mem /// </summary> public void BOUND (R32Type target, Memory source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BOUND", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o32", "62", "/r" })); }
/// <summary> /// NEG rmreg32 /// </summary> public void NEG (R32Type target) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "NEG", target.ToString (), null, target, null, null, new string [] { "o32", "F7", "/3" })); }
/// <summary> /// MOV segreg,rmreg32 /// </summary> public void MOV (SegType target, R32Type source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o32", "8E", "/r" })); }
/// <summary> /// MOVZX reg32,mem16 /// </summary> public void MOVZX (R32Type target, WordMemory source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOVZX", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o32", "0F", "B7", "/r" })); }
/// <summary> /// MOV reg32,TR3/4/5/6/7 /// </summary> public void MOV (R32Type target, TRType source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + source.ToString (), null, target, source, null, new string [] { "0F", "24", "/r" })); }
/// <summary> /// MOV reg32,imm32 /// </summary> public void MOV (R32Type target, UInt32 source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + string.Format ("0x{0:x}", source), null, null, target, new UInt32 [] { source }, new string [] { "o32", "B8+r", "id" })); }
/// <summary> /// IMUL reg32,rmreg32,imm32 /// </summary> public void IMUL (R32Type target, R32Type source, UInt32 value) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "IMUL", target.ToString () + ", " + source.ToString () + ", " + string.Format ("0x{0:x}", value), null, source, target, new UInt32 [] { value }, new string [] { "o32", "69", "/r", "id" })); }
/// <summary> /// SUB reg32,mem32 /// </summary> public void SUB (R32Type target, DWordMemory source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SUB", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o32", "2B", "/r" })); }
/// <summary> /// BSF reg32,rmreg32 /// </summary> public void BSF (R32Type target, R32Type source) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BSF", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o32", "0F", "BC", "/r" })); }
/// <summary> /// SUB rmreg32,imm8 /// </summary> public void SUB (R32Type target, Byte source) { if (source == 0) { } else if (source == 1) { this.DEC (target); } else { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SUB", target.ToString () + ", " + string.Format ("0x{0:x}", source), null, target, null, new UInt32 [] { source }, new string [] { "o32", "83", "/5", "ib" })); } }
/// <summary> /// PUSH reg32 /// </summary> public void PUSH (R32Type target) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH", target.ToString (), null, null, target, null, new string [] { "o32", "50+r" })); }
/// <summary> /// XCHG reg32,rmreg32 /// </summary> public void XCHG (R32Type target, R32Type source) { if (target == R32.EAX) this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG_EAX", "EAX" + ", " + source.ToString (), null, null, source, null, new string [] { "o32", "90+r" })); else if (source == R32.EAX) this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG__EAX", target.ToString () + ", " + "EAX", null, null, target, null, new string [] { "o32", "90+r" })); else { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o32", "87", "/r" })); } }
/// <summary> /// BSWAP reg32 /// </summary> public void BSWAP (R32Type target) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BSWAP", target.ToString (), null, null, target, null, new string [] { "o32", "0F", "C8+r" })); }
/// <summary> /// XOR rmreg32,imm32 /// </summary> public void XOR (R32Type target, UInt32 source) { if (target == R32.EAX) this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XOR_EAX", "EAX" + ", " + string.Format ("0x{0:x}", source), null, null, null, new UInt32 [] { source }, new string [] { "o32", "35", "id" })); else { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XOR", target.ToString () + ", " + string.Format ("0x{0:x}", source), null, target, null, new UInt32 [] { source }, new string [] { "o32", "81", "/6", "id" })); } }
/// <summary> /// SHR rmreg32,CL /// </summary> public void SHR__CL (R32Type target) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHR__CL", target.ToString () + ", " + "CL", null, target, null, null, new string [] { "o32", "D3", "/5" })); }
/// <summary> /// CALL rmreg32 /// </summary> public void CALL (R32Type target) { this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "CALL", target.ToString (), null, target, null, null, new string [] { "o32", "FF", "/2" })); }
/// <summary> /// MOVs the specified target. /// </summary> /// <param name="target">The target.</param> /// <param name="label">The label.</param> public void MOV (R32Type target, string label) { this.instructions.Add (new Instruction (true, string.Empty, label, "MOV", target.ToString () + ", " + Assembly.FormatLabelName (label), null, null, target, new UInt32 [] { 0 }, new string [] { "o32", "B8+r", "id" })); }