Inheritance: Register
Example #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Memory"/> class.
        /// </summary>
        /// <param name="segment">The segment.</param>
        /// <param name="_base">The _base.</param>
        /// <param name="index">The index.</param>
        public Memory(SegType segment, R16Type _base, R16Type index)
        {
            this.bits32Address = false;
            this.segment       = segment;
            this._base         = _base;
            this.index         = index;

            this.Check16Values();
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Memory"/> class.
        /// </summary>
        /// <param name="segment">The segment.</param>
        /// <param name="_base">The _base.</param>
        /// <param name="index">The index.</param>
        /// <param name="scale">The scale.</param>
        public Memory(SegType segment, R32Type _base, R32Type index, byte scale)
        {
            this.segment = segment;
            this._base   = _base;
            this.index   = index;
            this.scale   = scale;

            Check32Values();
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Memory"/> class.
        /// </summary>
        /// <param name="segment">The segment.</param>
        /// <param name="_base">The _base.</param>
        /// <param name="index">The index.</param>
        /// <param name="scale">The scale.</param>
        /// <param name="displacement">The displacement.</param>
        public Memory(SegType segment, R32Type _base, R32Type index, byte scale, Int32 displacement)
        {
            this.segment      = segment;
            this._base        = _base;
            this.index        = index;
            this.scale        = scale;
            this.Displacement = displacement;

            Check32Values();
        }
Example #4
0
		/// <summary>
		/// Initializes a new instance of the <see cref="QWordMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="scale">The scale.</param>
		public QWordMemory (SegType segment, R32Type _base, R32Type index, byte scale)
			: base (segment, _base, index, scale)
		{
		}
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QWordMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="_base">The _base.</param>
 /// <param name="index">The index.</param>
 public QWordMemory(SegType segment, R16Type _base, R16Type index)
     : base(segment, _base, index)
 {
 }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QWordMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="label">The label.</param>
 public QWordMemory(SegType segment, string label)
     : base(segment, label)
 {
 }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QWordMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="_base">The _base.</param>
 /// <param name="index">The index.</param>
 /// <param name="scale">The scale.</param>
 /// <param name="displacement">The displacement.</param>
 public QWordMemory(SegType segment, R32Type _base, R32Type index, byte scale, Int32 displacement)
     : base(segment, _base, index, scale, displacement)
 {
 }
Example #8
0
		/// <summary>
		/// PUSH segreg
		/// </summary>
		public static void PUSH (SegType target)
		{
		}
Example #9
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" }));
		}
Example #10
0
		/// <summary>
		/// MOV rmreg16,segreg
		/// </summary>
		public void MOV (R16Type target, SegType source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + source.ToString (), null, target, source, null, new string [] { "o16", "8C", "/r" }));
		}
Example #11
0
		/// <summary>
		/// MOV mem32,segreg
		/// </summary>
		public void MOV (DWordMemory target, SegType source)
		{
			this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "MOV", target.ToString () + ", " + source.ToString (), target, null, source, null, new string [] { "o32", "8C", "/r" }));
		}
Example #12
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Memory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="displacement">The displacement.</param>
		public Memory (SegType segment, R16Type _base, R16Type index, Int16 displacement)
		{
			this.bits32Address = false;
			this.segment = segment;
			this._base = _base;
			this.index = index;
			this.Displacement = displacement;

			this.Check16Values ();
		}
Example #13
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Memory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="label">The label.</param>
		public Memory (SegType segment, string label)
		{
			this.segment = segment;
			this.reference = label;
			this.Displacement = 0;
		}
Example #14
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Memory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="scale">The scale.</param>
		public Memory (SegType segment, R32Type _base, R32Type index, byte scale)
		{
			this.segment = segment;
			this._base = _base;
			this.index = index;
			this.scale = scale;

			Check32Values ();
		}
Example #15
0
		/// <summary>
		/// Initializes a new instance of the <see cref="QWordMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="displacement">The displacement.</param>
		public QWordMemory (SegType segment, R16Type _base, R16Type index, Int16 displacement)
			: base (segment, _base, index, displacement)
		{
		}
Example #16
0
		/// <summary>
		/// Initializes a new instance of the <see cref="Memory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="scale">The scale.</param>
		/// <param name="displacement">The displacement.</param>
		public Memory (SegType segment, R32Type _base, R32Type index, byte scale, Int32 displacement)
		{
			this.segment = segment;
			this._base = _base;
			this.index = index;
			this.scale = scale;
			this.Displacement = displacement;

			Check32Values ();
		}
Example #17
0
		/// <summary>
		/// POP segreg
		/// </summary>
		public void POP (SegType target)
		{
			if (target == Seg.GS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "POP_GS", "GS", null, null, null, null, new string [] { "0F", "A9" }));
			else if (target == Seg.FS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "POP_FS", "FS", null, null, null, null, new string [] { "0F", "A1" }));
			else if (target == Seg.ES)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "POP_ES", "ES", null, null, null, null, new string [] { "07" }));
			else if (target == Seg.DS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "POP_DS", "DS", null, null, null, null, new string [] { "1F" }));
			else if (target == Seg.SS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "POP_SS", "SS", null, null, null, null, new string [] { "17" }));
			else {
				throw new EngineException ("Parameters not supported.");
			}
		}
Example #18
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ByteMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="label">The label.</param>
		public ByteMemory (SegType segment, string label)
			: base (segment, label)
		{
		}
Example #19
0
		/// <summary>
		/// PUSH segreg
		/// </summary>
		public void PUSH (SegType target)
		{
			if (target == Seg.CS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_CS", "CS", null, null, null, null, new string [] { "0E" }));
			else if (target == Seg.GS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_GS", "GS", null, null, null, null, new string [] { "0F", "A8" }));
			else if (target == Seg.ES)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_ES", "ES", null, null, null, null, new string [] { "06" }));
			else if (target == Seg.DS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_DS", "DS", null, null, null, null, new string [] { "1E" }));
			else if (target == Seg.SS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_SS", "SS", null, null, null, null, new string [] { "16" }));
			else if (target == Seg.FS)
				this.instructions.Add (new Instruction (true, string.Empty, string.Empty, "PUSH_FS", "FS", null, null, null, null, new string [] { "0F", "A0" }));
			else {
				throw new EngineException ("Parameters not supported.");
			}
		}
Example #20
0
		/// <summary>
		/// MOV mem32,segreg
		/// </summary>
		public static void MOV (DWordMemory target, SegType source)
		{
		}
Example #21
0
		/// <summary>
		/// MOV mem32,segreg
		/// </summary>
		public unsafe static void MOV (UInt32* target, SegType source)
		{
		}
Example #22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Memory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="label">The label.</param>
 public Memory(SegType segment, string label)
 {
     this.segment      = segment;
     this.reference    = label;
     this.Displacement = 0;
 }
Example #23
0
		/// <summary>
		/// MOV segreg,mem32
		/// </summary>
		public static void MOV (SegType target, DWordMemory source)
		{
		}
Example #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QWordMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="_base">The _base.</param>
 /// <param name="index">The index.</param>
 /// <param name="scale">The scale.</param>
 public QWordMemory(SegType segment, R32Type _base, R32Type index, byte scale)
     : base(segment, _base, index, scale)
 {
 }
Example #25
0
		/// <summary>
		/// MOV segreg,mem32
		/// </summary>
		public unsafe static void MOV (SegType target, UInt32* source)
		{
		}
Example #26
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QWordMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="_base">The _base.</param>
 /// <param name="index">The index.</param>
 /// <param name="displacement">The displacement.</param>
 public QWordMemory(SegType segment, R16Type _base, R16Type index, Int16 displacement)
     : base(segment, _base, index, displacement)
 {
 }
Example #27
0
		/// <summary>
		/// MOV rmreg16,segreg
		/// </summary>
		public static void MOV (R16Type target, SegType source)
		{
		}
Example #28
0
		/// <summary>
		/// Initializes a new instance of the <see cref="QWordMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		/// <param name="scale">The scale.</param>
		/// <param name="displacement">The displacement.</param>
		public QWordMemory (SegType segment, R32Type _base, R32Type index, byte scale, Int32 displacement)
			: base (segment, _base, index, scale, displacement)
		{
		}
Example #29
0
		/// <summary>
		/// MOV segreg,rmreg32
		/// </summary>
		public static void MOV (SegType target, R32Type source)
		{
		}
Example #30
0
		/// <summary>
		/// Initializes a new instance of the <see cref="QWordMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="label">The label.</param>
		public QWordMemory (SegType segment, string label)
			: base (segment, label)
		{
		}
Example #31
0
		/// <summary>
		/// POP segreg
		/// </summary>
		public static void POP (SegType target)
		{
		}
Example #32
0
		/// <summary>
		/// Initializes a new instance of the <see cref="QWordMemory"/> class.
		/// </summary>
		/// <param name="segment">The segment.</param>
		/// <param name="_base">The _base.</param>
		/// <param name="index">The index.</param>
		public QWordMemory (SegType segment, R16Type _base, R16Type index)
			: base (segment, _base, index)
		{
		}
Example #33
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ByteMemory"/> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 /// <param name="label">The label.</param>
 public ByteMemory(SegType segment, string label)
     : base(segment, label)
 {
 }