Пример #1
0
		/// <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" }));
		}
Пример #2
0
		/// <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" }));
			}
		}
Пример #3
0
		/// <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" }));
		}
Пример #4
0
		/// <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" }));
		}
Пример #5
0
		/// <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" }));
		}
Пример #6
0
		/// <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" }));
		}
Пример #7
0
		/// <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" }));
		}
Пример #8
0
		/// <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" }));
		}
Пример #9
0
		/// <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" }));
		}
Пример #10
0
		/// <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" }));
		}
Пример #11
0
		/// <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" }));
		}
Пример #12
0
		/// <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" }));
		}
Пример #13
0
		/// <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" }));
		}
Пример #14
0
		/// <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" }));
		}
Пример #15
0
		/// <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" }));
		}
Пример #16
0
		/// <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" }));
		}
Пример #17
0
		/// <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" }));
			}
		}
Пример #18
0
		/// <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" }));
		}
Пример #19
0
		/// <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" }));
			}
		}
Пример #20
0
		/// <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" }));
		}
Пример #21
0
		/// <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" }));
			}
		}
Пример #22
0
		/// <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" }));
		}
Пример #23
0
		/// <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" }));
		}
Пример #24
0
		/// <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" }));
		}