/// <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(); }
/// <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(); }
/// <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(); }
/// <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) { }
/// <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) { }
/// <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) { }
/// <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) { }
/// <summary> /// PUSH segreg /// </summary> public static void PUSH (SegType target) { }
/// <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> /// 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" })); }
/// <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" })); }
/// <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 (); }
/// <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; }
/// <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 (); }
/// <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) { }
/// <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 (); }
/// <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."); } }
/// <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) { }
/// <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."); } }
/// <summary> /// MOV mem32,segreg /// </summary> public static void MOV (DWordMemory target, SegType source) { }
/// <summary> /// MOV mem32,segreg /// </summary> public unsafe static void MOV (UInt32* target, SegType source) { }
/// <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; }
/// <summary> /// MOV segreg,mem32 /// </summary> public static void MOV (SegType target, DWordMemory source) { }
/// <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) { }
/// <summary> /// MOV segreg,mem32 /// </summary> public unsafe static void MOV (SegType target, UInt32* source) { }
/// <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) { }
/// <summary> /// MOV rmreg16,segreg /// </summary> public static void MOV (R16Type target, SegType source) { }
/// <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) { }
/// <summary> /// MOV segreg,rmreg32 /// </summary> public static void MOV (SegType target, R32Type source) { }
/// <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) { }
/// <summary> /// POP segreg /// </summary> public static void POP (SegType target) { }
/// <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) { }
/// <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) { }