Пример #1
0
		/// <summary>
		/// SHRD rmreg16,reg16,imm8
		/// </summary>
		public void SHRD (R16Type target, R16Type 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 [] { "o16", "0F", "AC", "/r", "ib" }));
		}
Пример #2
0
		/// <summary>
		/// IMUL reg16,mem16,imm8
		/// </summary>
		public void IMUL (R16Type target, WordMemory 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 [] { "o16", "6B", "/r", "ib" }));
		}
Пример #3
0
		/// <summary>
		/// SHR rmreg16,imm8
		/// </summary>
		public void SHR (R16Type 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 [] { "o16", "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 [] { "o16", "C1", "/5", "ib" }));
			}
		}
Пример #4
0
		/// <summary>
		/// XOR rmreg16,imm16
		/// </summary>
		public void XOR (R16Type target, UInt16 source)
		{
			if (target == R16.AX)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XOR_AX", "AX" + ", " + string.Format ("0x{0:x}", source), null, null, null, new UInt32 [] { source }, new string [] { "o16", "35", "iw" }));
			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 [] { "o16", "81", "/6", "iw" }));
			}
		}
Пример #5
0
		/// <summary>
		/// CALL rmreg16
		/// </summary>
		public void CALL (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "CALL", target.ToString (), null, target, null, null, new string [] { "o16", "FF", "/2" }));
		}
Пример #6
0
		/// <summary>
		/// VERW rmreg16
		/// </summary>
		public void VERW (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "VERW", target.ToString (), null, target, null, null, new string [] { "0F", "00", "/5" }));
		}
Пример #7
0
		/// <summary>
		/// XCHG reg16,rmreg16
		/// </summary>
		public void XCHG (R16Type target, R16Type source)
		{
			if (target == R16.AX)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG_AX", "AX" + ", " + source.ToString (), null, null, source, null, new string [] { "o16", "90+r" }));
			else if (source == R16.AX)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG__AX", target.ToString () + ", " + "AX", null, null, target, null, new string [] { "o16", "90+r" }));
			else {
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o16", "87", "/r" }));
			}
		}
Пример #8
0
		/// <summary>
		/// MOVZX reg16,mem8
		/// </summary>
		public void MOVZX (R16Type target, ByteMemory source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOVZX", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o16", "0F", "B6", "/r" }));
		}
Пример #9
0
		/// <summary>
		/// BOUND reg16,mem
		/// </summary>
		public void BOUND (R16Type target, Memory source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BOUND", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o16", "62", "/r" }));
		}
Пример #10
0
		/// <summary>
		/// MOV segreg,rmreg16
		/// </summary>
		public void MOV (SegType target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "8E", "/r" }));
		}
Пример #11
0
		/// <summary>
		/// ARPL rmreg16,reg16
		/// </summary>
		public void ARPL (R16Type target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "ARPL", target.ToString () + ", " + source.ToString (), null, target, source, null, new string [] { "63", "/r" }));
		}
Пример #12
0
		/// <summary>
		/// MOV reg16,imm16
		/// </summary>
		public void MOV (R16Type target, UInt16 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 [] { "o16", "B8+r", "iw" }));
		}
Пример #13
0
		/// <summary>
		/// LMSW rmreg16
		/// </summary>
		public void LMSW (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "LMSW", target.ToString (), null, target, null, null, new string [] { "0F", "01", "/6" }));
		}
Пример #14
0
		/// <summary>
		/// IMUL reg16,rmreg16,imm16
		/// </summary>
		public void IMUL (R16Type target, R16Type source, UInt16 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 [] { "o16", "69", "/r", "iw" }));
		}
Пример #15
0
		/// <summary>
		/// SHRD rmreg16,reg16,CL
		/// </summary>
		public void SHRD___CL (R16Type target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHRD___CL", target.ToString () + ", " + source.ToString () + ", " + "CL", null, target, source, null, new string [] { "o16", "0F", "AD", "/r" }));
		}
Пример #16
0
		/// <summary>
		/// MOVZX reg32,rmreg16
		/// </summary>
		public void MOVZX (R32Type target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOVZX", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o32", "0F", "B7", "/r" }));
		}
Пример #17
0
		/// <summary>
		/// STR rmreg16
		/// </summary>
		public void STR (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "STR", target.ToString (), null, target, null, null, new string [] { "o16", "0F", "00", "/1" }));
		}
Пример #18
0
		/// <summary>
		/// NEG rmreg16
		/// </summary>
		public void NEG (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "NEG", target.ToString (), null, target, null, null, new string [] { "o16", "F7", "/3" }));
		}
Пример #19
0
		/// <summary>
		/// XCHG mem16,reg16
		/// </summary>
		public void XCHG (WordMemory target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XCHG", target.ToString () + ", " + source.ToString (), target, null, source, null, new string [] { "o16", "87", "/r" }));
		}
Пример #20
0
		/// <summary>
		/// BSF reg16,rmreg16
		/// </summary>
		public void BSF (R16Type target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "BSF", target.ToString () + ", " + source.ToString (), null, source, target, null, new string [] { "o16", "0F", "BC", "/r" }));
		}
Пример #21
0
		/// <summary>
		/// XOR rmreg16,reg16
		/// </summary>
		public void XOR (R16Type target, R16Type source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "XOR", target.ToString () + ", " + source.ToString (), null, target, source, null, new string [] { "o16", "31", "/r" }));
		}
Пример #22
0
		/// <summary>
		/// PUSH reg16
		/// </summary>
		public void PUSH (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH", target.ToString (), null, null, target, null, new string [] { "o16", "50+r" }));
		}
Пример #23
0
		/// <summary>
		/// XOR rmreg16,imm8
		/// </summary>
		public void XOR (R16Type target, Byte source)
		{
			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 [] { "o16", "83", "/6", "ib" }));
		}
Пример #24
0
		/// <summary>
		/// SHR rmreg16,CL
		/// </summary>
		public void SHR__CL (R16Type target)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "SHR__CL", target.ToString () + ", " + "CL", null, target, null, null, new string [] { "o16", "D3", "/5" }));
		}
Пример #25
0
		/// <summary>
		/// ADC reg16,mem16
		/// </summary>
		public void ADC (R16Type target, WordMemory source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "ADC", target.ToString () + ", " + source.ToString (), source, null, target, null, new string [] { "o16", "13", "/r" }));
		}
Пример #26
0
		/// <summary>
		/// MOVs the specified target.
		/// </summary>
		/// <param name="target">The target.</param>
		/// <param name="label">The label.</param>
		public void MOV (R16Type 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 [] { "o16", "B8+r", "iw" }));
		}