public void Shr32(X86Address mem, byte count) {
			if (count == 1) {
				writer.Write(new byte[] { 0xD1 });
				mem.Emit(writer, (X86Register8)5);
			} else {
				writer.Write(new byte[] { 0xC1 });
				mem.Emit(writer, (X86Register8)5);
				imm_emit8(count);
			}
		}
示例#2
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);
     }
 }
示例#3
0
 public void Call_Far(X86Address address)
 {
     this.writer.Write(new byte[] { 0xFF });
     address.Emit(writer, (X86Register32)0x3);
 }
示例#4
0
		public void Mul32(X86Address src) {
			writer.Write(new byte[] { 0xF7 });
			src.Emit(writer, (X86Register8)4);
		}
示例#5
0
		public void Push32(X86Address addr) {
			writer.Write(new byte[] { 0xFF });
			addr.Emit(writer, (X86Register8)6);
		}
示例#6
0
 public void Push32(X86Address addr)
 {
     writer.Write(new byte[] { 0xFF });
     addr.Emit(writer, (X86Register8)6);
 }
示例#7
0
 public void Or32(X86Address dest, X86Register32 src)
 {
     writer.Write(new byte[] { 0x09 });
     dest.Emit(writer, src);
 }
		public void Shr64(X86Address left, X86Register32 right, byte count) {
			writer.Write(new byte[] { 0x0F, 0xAC });
			left.Emit(writer, right);
			imm_emit8(count);
		}
示例#9
0
 public void Cmp16(X86Address dest, Int16 src)
 {
     writer.Write(new byte[] { 0x66, 0x81 });
     dest.Emit(writer, (X86Register8)7);
     imm_emit16(src);
 }
示例#10
0
 public void Shr16(X86Address mem)
 {
     writer.Write(new byte[] { 0x66, 0xD3 });
     mem.Emit(writer, (X86Register8)5);
 }
示例#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);
 }
示例#12
0
		public void Cmp32(X86Address dest, Int32 src) {
			writer.Write(new byte[] { 0x81 });
			dest.Emit(writer, (X86Register8)7);
			imm_emit32(src);
		}
示例#13
0
		public void Jmp(X86Address address) {
			this.writer.Write(new byte[] { 0xFF });
			address.Emit(writer, (X86Register32)0x4);
		}
示例#14
0
		public void Cmp16(X86Address dest, Int16 src) {
			writer.Write(new byte[] { 0x66, 0x81 });
			dest.Emit(writer, (X86Register8)7);
			imm_emit16(src);
		}
示例#15
0
		public void Cmp8(X86Address dest, Byte src) {
			writer.Write(new byte[] { 0x80 });
			dest.Emit(writer, (X86Register8)7);
			imm_emit8(src);
		}
示例#16
0
		public void Not16(X86Address dest) {
			writer.Write(new byte[] { 0x66, 0xF7 });
			dest.Emit(writer, (X86Register8)2);
		}
示例#17
0
 public void Not32(X86Address dest)
 {
     writer.Write(new byte[] { 0xF7 });
     dest.Emit(writer, (X86Register8)2);
 }
示例#18
0
 public void IMul8(X86Address dest, Byte value)
 {
     this.writer.Write(new byte[] { 0x80 });
     dest.Emit(writer, X86Register32.None);
     writer.Write(value);
 }
示例#19
0
 public void Div8(X86Address src)
 {
     writer.Write(new byte[] { 0xF6 });
     src.Emit(writer, (X86Register8)6);
 }
示例#20
0
 public void IMul16(X86Address dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x01 });
     dest.Emit(writer, src);
 }
示例#21
0
 public void Mov32(X86Address dest, X86Register32 src)
 {
     this.writer.Write(new byte[] { 0x89 });
     dest.Emit(writer, src);
 }
示例#22
0
 public void Cmp8(X86Address dest, Byte src)
 {
     writer.Write(new byte[] { 0x80 });
     dest.Emit(writer, (X86Register8)7);
     imm_emit8(src);
 }
示例#23
0
 public void Mul32(X86Address src)
 {
     writer.Write(new byte[] { 0xF7 });
     src.Emit(writer, (X86Register8)4);
 }
示例#24
0
 public void Mov32(X86Register32 dest, X86Address src)
 {
     this.writer.Write(new byte[] { 0x8b });
     src.Emit(writer, dest);
 }
示例#25
0
 public void IMul16(X86Register16 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x66, 0x03 });
     src.Emit(writer, dest);
 }
示例#26
0
 public void Shl32(X86Address mem)
 {
     writer.Write(new byte[] { 0xD3 });
     mem.Emit(writer, (X86Register8)4);
 }
 public void CmpXChg32(X86Address dest, X86Register32 src)
 {
     writer.Write(new byte[] { 0x0F, 0xB1 });
     dest.Emit(writer, src);
 }
示例#28
0
 public void Shl64(X86Address left, X86Register32 right, byte count)
 {
     writer.Write(new byte[] { 0x0F, 0xA4 });
     left.Emit(writer, right);
     imm_emit8(count);
 }
示例#29
0
 public void Or8(X86Address dest, Byte value)
 {
     this.writer.Write(new byte[] { 0x80 });
     dest.Emit(writer, (X86Register8)0x1);
     writer.Write(value);
 }
示例#30
0
 public void Shl64(X86Address left, X86Register32 right)
 {
     writer.Write(new byte[] { 0x0F, 0xA5 });
     left.Emit(writer, right);
 }
		public void AddC32(X86Address dest, Int32 value) {
			this.writer.Write(new byte[] { 0x81 });
			dest.Emit(writer, (X86Register32)0x2);
			writer.Write(value);
		}
示例#32
0
		public void Negate32(X86Address dest) {
			writer.Write(new byte[] { 0xF7 });
			dest.Emit(writer, (X86Register8)3);
		}
示例#33
0
 public void Jmp(X86Address address)
 {
     this.writer.Write(new byte[] { 0xFF });
     address.Emit(writer, (X86Register32)0x4);
 }
示例#34
0
 public void Pop32(X86Address addr)
 {
     writer.Write(new byte[] { 0x8F });
     addr.Emit(writer, (X86Register8)0);
 }
示例#35
0
		public void Inc32(X86Address mem) {
			writer.Write(new byte[] { 0xFF });
			mem.Emit(writer, (X86Register8)0);
		}
示例#36
0
		public void Xor16(X86Address dest, Int16 value) {
			this.writer.Write(new byte[] { 0x66, 0x81 });
			dest.Emit(writer, (X86Register16)6);
			writer.Write(value);
		}
示例#37
0
		public void Shl16(X86Address mem) {
			writer.Write(new byte[] { 0x66, 0xD3 });
			mem.Emit(writer, (X86Register8)4);
		}
示例#38
0
		public void Mov8(X86Address dest, Byte value) {
			this.writer.Write(new byte[] { 0xc6 });
			dest.Emit(writer, X86Register32.None);
			this.writer.Write(value);
		}
示例#39
0
 public void IDiv16(X86Address src)
 {
     writer.Write(new byte[] { 0x66, 0xF7 });
     src.Emit(writer, (X86Register8)7);
 }
示例#40
0
		public void Mov32(X86Address dest, Int32 value) {
			this.writer.Write(new byte[] { 0xc7 });
			dest.Emit(writer, X86Register32.None);
			this.writer.Write(value);
		}
示例#41
0
		public void Shr64(X86Address left, X86Register32 right) {
			writer.Write(new byte[] { 0x0F, 0xAD });
			left.Emit(writer, right);
		}
示例#42
0
		public void Mov32(X86Address dest, X86Register32 src) {
			this.writer.Write(new byte[] { 0x89 });
			dest.Emit(writer, src);
		}
示例#43
0
		public void Shr32(X86Address mem) {
			writer.Write(new byte[] { 0xD3 });
			mem.Emit(writer, (X86Register8)5);
		}
示例#44
0
		public void Mov32(X86Register32 dest, X86Address src) {
			this.writer.Write(new byte[] { 0x8b });
			src.Emit(writer, dest);
		}
示例#45
0
 public void IMul32(X86Address dest, Int32 value)
 {
     this.writer.Write(new byte[] { 0x81 });
     dest.Emit(writer, X86Register32.None);
     writer.Write(value);
 }
		public void AddC8(X86Address dest, X86Register8 src) {
			writer.Write(new byte[] { 0x10 });
			dest.Emit(writer, src);
		}
示例#47
0
 public void IMul8(X86Address dest, X86Register8 src)
 {
     writer.Write(new byte[] { 0x00 });
     dest.Emit(writer, src);
 }
		public void AddC16(X86Address dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x11 });
			dest.Emit(writer, src);
		}
示例#49
0
 public void IMul8(X86Register8 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x02 });
     src.Emit(writer, dest);
 }
		public void AddC32(X86Address dest, X86Register32 src) {
			writer.Write(new byte[] { 0x11 });
			dest.Emit(writer, src);
		}
示例#51
0
		public void Pop32(X86Address addr) {
			writer.Write(new byte[] { 0x8F });
			addr.Emit(writer, (X86Register8)0);
		}
		public void AddC8(X86Register8 dest, X86Address src) {
			writer.Write(new byte[] { 0x12 });
			src.Emit(writer, dest);
		}
示例#53
0
		public void Call_Far(X86Address address) {
			this.writer.Write(new byte[] { 0xFF });
			address.Emit(writer, (X86Register32)0x3);
		}
		public void AddC16(X86Register16 dest, X86Address src) {
			writer.Write(new byte[] { 0x66, 0x13 });
			src.Emit(writer, dest);
		}
示例#55
0
 public void Or32(X86Address dest, Int32 value)
 {
     this.writer.Write(new byte[] { 0x81 });
     dest.Emit(writer, (X86Register32)0x1);
     writer.Write(value);
 }
		public void AddC32(X86Register32 dest, X86Address src) {
			writer.Write(new byte[] { 0x13 });
			src.Emit(writer, dest);
		}
示例#57
0
 public void Or32(X86Register32 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x0B });
     src.Emit(writer, dest);
 }
		public void AddC8(X86Address dest, Byte value) {
			this.writer.Write(new byte[] { 0x80 });
			dest.Emit(writer, (X86Register32)0x2);
			writer.Write(value);
		}
示例#59
0
 public void Or16(X86Address dest, Int16 value)
 {
     this.writer.Write(new byte[] { 0x66, 0x81 });
     dest.Emit(writer, (X86Register16)0x1);
     writer.Write(value);
 }
示例#60
0
		public void IMul16(X86Address dest, Int16 value) {
			this.writer.Write(new byte[] { 0x66, 0x81 });
			dest.Emit(writer, X86Register32.None);
			writer.Write(value);
		}