Exemplo n.º 1
0
 public void Shl32(X86Address mem, byte count)
 {
     if (count == 1)
     {
         writer.Write(new byte[] { 0xD1 });
         mem.Emit(writer, (X86Register8)4);
     }
     else
     {
         writer.Write(new byte[] { 0xC1 });
         mem.Emit(writer, (X86Register8)4);
         imm_emit8(count);
     }
 }
Exemplo n.º 2
0
 public void Pop32(X86Address addr)
 {
     writer.Write(new byte[] { 0x8F });
     addr.Emit(writer, (X86Register8)0);
 }
Exemplo n.º 3
0
 public void Negate32(X86Address dest)
 {
     writer.Write(new byte[] { 0xF7 });
     dest.Emit(writer, (X86Register8)3);
 }
Exemplo n.º 4
0
 public void Cmp8(X86Address dest, Byte src)
 {
     writer.Write(new byte[] { 0x80 });
     dest.Emit(writer, (X86Register8)7);
     imm_emit8(src);
 }
Exemplo n.º 5
0
 public void Cmp16(X86Address dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x39 });
     dest.Emit(writer, src);
 }
Exemplo n.º 6
0
 public void Cmp16(X86Register16 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x66, 0x3B });
     src.Emit(writer, dest);
 }
Exemplo n.º 7
0
 public void Cmp32(X86Address dest, Int32 src)
 {
     writer.Write(new byte[] { 0x81 });
     dest.Emit(writer, (X86Register8)7);
     imm_emit32(src);
 }
Exemplo n.º 8
0
 public void AddC8(X86Address dest, Byte value)
 {
     this.writer.Write(new byte[] { 0x80 });
     dest.Emit(writer, (X86Register32)0x2);
     writer.Write(value);
 }
Exemplo n.º 9
0
 public void Mov32(X86Register32 dest, X86Address src)
 {
     this.writer.Write(new byte[] { 0x8b });
     src.Emit(writer, dest);
 }
Exemplo n.º 10
0
 public void Mov32(X86Address dest, X86Register32 src)
 {
     this.writer.Write(new byte[] { 0x89 });
     dest.Emit(writer, src);
 }
Exemplo n.º 11
0
 public void Mov16(X86Address dest, Int16 value)
 {
     this.writer.Write(new byte[] { 0x66, 0xc7 });
     dest.Emit(writer, X86Register32.None);
     this.writer.Write(value);
 }
Exemplo n.º 12
0
 public void Mov8(X86Address dest, Byte value)
 {
     this.writer.Write(new byte[] { 0xc6 });
     dest.Emit(writer, X86Register32.None);
     this.writer.Write(value);
 }
Exemplo n.º 13
0
 public void Dec16(X86Address mem)
 {
     writer.Write(new byte[] { 0x66, 0xFF });
     mem.Emit(writer, (X86Register8)1);
 }
Exemplo n.º 14
0
 public void Shr16(X86Address mem)
 {
     writer.Write(new byte[] { 0x66, 0xD3 });
     mem.Emit(writer, (X86Register8)5);
 }
Exemplo n.º 15
0
 public void Mul8(X86Address src)
 {
     writer.Write(new byte[] { 0xF6 });
     src.Emit(writer, (X86Register8)4);
 }
Exemplo n.º 16
0
 public void Div16(X86Address src)
 {
     writer.Write(new byte[] { 0x66, 0xF7 });
     src.Emit(writer, (X86Register8)6);
 }
Exemplo n.º 17
0
 public void AddC8(X86Address dest, X86Register8 src)
 {
     writer.Write(new byte[] { 0x10 });
     dest.Emit(writer, src);
 }
Exemplo n.º 18
0
 public void IDiv32(X86Address src)
 {
     writer.Write(new byte[] { 0xF7 });
     src.Emit(writer, (X86Register8)7);
 }
Exemplo n.º 19
0
 public void AddC16(X86Address dest, Int16 value)
 {
     this.writer.Write(new byte[] { 0x66, 0x81 });
     dest.Emit(writer, (X86Register32)0x2);
     writer.Write(value);
 }
Exemplo n.º 20
0
 public void Add32(X86Address dest, Int32 value)
 {
     this.writer.Write(new byte[] { 0x81 });
     dest.Emit(writer, X86Register32.None);
     writer.Write(value);
 }
Exemplo n.º 21
0
 public void Cmp8(X86Register8 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x3A });
     src.Emit(writer, dest);
 }
Exemplo n.º 22
0
 public void JmpFar(X86Address address)
 {
     this.writer.Write(new byte[] { 0xFF });
     address.Emit(writer, (X86Register32)0x5);
 }
Exemplo n.º 23
0
 public void Cmp32(X86Register32 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x3B });
     src.Emit(writer, dest);
 }
Exemplo n.º 24
0
 public void Shl32(X86Address mem)
 {
     writer.Write(new byte[] { 0xD3 });
     mem.Emit(writer, (X86Register8)4);
 }
Exemplo n.º 25
0
 public void Cmp32(X86Address dest, X86Register32 src)
 {
     writer.Write(new byte[] { 0x38 });
     dest.Emit(writer, src);
 }
Exemplo n.º 26
0
 public void Shl64(X86Address left, X86Register32 right, byte count)
 {
     writer.Write(new byte[] { 0x0F, 0xA4 });
     left.Emit(writer, right);
     imm_emit8(count);
 }
Exemplo n.º 27
0
 public void Cmp16(X86Address dest, Int16 src)
 {
     writer.Write(new byte[] { 0x66, 0x81 });
     dest.Emit(writer, (X86Register8)7);
     imm_emit16(src);
 }
Exemplo n.º 28
0
 public void Shl64(X86Address left, X86Register32 right)
 {
     writer.Write(new byte[] { 0x0F, 0xA5 });
     left.Emit(writer, right);
 }
Exemplo n.º 29
0
 public void Inc32(X86Address mem)
 {
     writer.Write(new byte[] { 0xFF });
     mem.Emit(writer, (X86Register8)0);
 }
Exemplo n.º 30
0
 public void Not16(X86Address dest)
 {
     writer.Write(new byte[] { 0x66, 0xF7 });
     dest.Emit(writer, (X86Register8)2);
 }