public void Shr16(X86Register16 reg, byte count) {
			if (count == 1) {
				writer.Write(new byte[] { 0x66, 0xD1 });
				reg_emit16((X86Register16)5, reg);
			} else {
				writer.Write(new byte[] { 0x66, 0xC1 });
				reg_emit16((X86Register16)5, reg);
				imm_emit8(count);
			}
		}
Exemple #2
0
 public void Shl16(X86Register16 reg, byte count)
 {
     if (count == 1)
     {
         writer.Write(new byte[] { 0x66, 0xD1 });
         reg_emit16((X86Register16)4, reg);
     }
     else
     {
         writer.Write(new byte[] { 0x66, 0xC1 });
         reg_emit16((X86Register16)4, reg);
         imm_emit8(count);
     }
 }
Exemple #3
0
 public void Or16(X86Register16 dest, X86Address src)
 {
     writer.Write(new byte[] { 0x66, 0x0B });
     src.Emit(writer, dest);
 }
Exemple #4
0
 public void Or16(X86Register16 dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x09 });
     reg_emit16(dest, src);
 }
 public void CmpXChg16(X86Address dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x0F, 0xB1 });
     dest.Emit(writer, src);
 }
 public void IDiv16(X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0xF7 });
     reg_emit16((X86Register16)7, src);
 }
Exemple #7
0
 public void Mov16(X86Register16 dest, Int16 value)
 {
     this.writer.Write(new byte[] { 0x66, 0xc7 });
     reg_emit16(0, dest);
     writer.Write(value);
 }
		public void CmpXChg16(X86Address dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x0F, 0xB1 });
			dest.Emit(writer, src);
		}
		public void Cmp16(X86Register16 dest, Int16 src) {
			writer.Write(new byte[] { 0x66, 0x81 });
			reg_emit16((X86Register16)7, dest);
			imm_emit16(src);
		}
		public void Negate16(X86Register16 dest) {
			writer.Write(new byte[] { 0x66, 0xF7 });
			reg_emit16((X86Register16)3, dest);
		}
		public void IMul16(X86Register16 dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x0F, 0xAF });
			reg_emit16(dest, src);
		}
		public void Mul16(X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0xF7 });
			reg_emit16((X86Register16)4, src);
		}
Exemple #13
0
		internal void Emit(BinaryWriter writer, X86Register16 otherReg) {
			this.Emit(writer, (byte)otherReg);
		}
Exemple #14
0
 public void Negate16(X86Register16 dest)
 {
     writer.Write(new byte[] { 0x66, 0xF7 });
     reg_emit16((X86Register16)3, dest);
 }
Exemple #15
0
 public void Mov16(X86Address dest, X86Register16 src)
 {
     this.writer.Write(new byte[] { 0x66, 0x89 });
     dest.Emit(writer, src);
 }
Exemple #16
0
 private void reg_emit16(X86Register16 dest, X86Register16 src)
 {
     address_byte(3, (byte)(dest), (byte)(src));
 }
Exemple #17
0
 public void Mov16(X86Register16 dest, X86Address src)
 {
     this.writer.Write(new byte[] { 0x66, 0x8b });
     src.Emit(writer, dest);
 }
		public void Inc16(X86Register16 reg) {
			writer.Write(new byte[] { 0x66, 0xFF });
			reg_emit16((X86Register16)0, reg);
		}
Exemple #19
0
		public void Mov16(X86Register16 dest, Int16 value) {
			this.writer.Write(new byte[] { 0x66, 0xc7 });
			reg_emit16(0, dest);
			writer.Write(value);
		}
		public void Shr16(X86Register16 reg) {
			writer.Write(new byte[] { 0x66, 0xD3 });
			reg_emit16((X86Register16)5, reg);
		}
Exemple #21
0
		public void Mov16(X86Address dest, X86Register16 src) {
			this.writer.Write(new byte[] { 0x66, 0x89 });
			dest.Emit(writer, src);
		}
Exemple #22
0
 public void Shl16(X86Register16 reg)
 {
     writer.Write(new byte[] { 0x66, 0xD3 });
     reg_emit16((X86Register16)4, reg);
 }
Exemple #23
0
		public void Mov16(X86Register16 dest, X86Address src) {
			this.writer.Write(new byte[] { 0x66, 0x8b });
			src.Emit(writer, dest);
		}
 public void CmpXChg16(X86Register16 dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x0F, 0xB1 });
     reg_emit16(src, dest);
 }
		public void AddC16(X86Register16 dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x11 });
			reg_emit16(dest, src);
		}
Exemple #26
0
 public void Cmp16(X86Register16 dest, Int16 src)
 {
     writer.Write(new byte[] { 0x66, 0x81 });
     reg_emit16((X86Register16)7, dest);
     imm_emit16(src);
 }
		public void AddC16(X86Address dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x11 });
			dest.Emit(writer, src);
		}
Exemple #28
0
 public void Or16(X86Address dest, X86Register16 src)
 {
     writer.Write(new byte[] { 0x66, 0x09 });
     dest.Emit(writer, src);
 }
		public void AddC16(X86Register16 dest, X86Address src) {
			writer.Write(new byte[] { 0x66, 0x13 });
			src.Emit(writer, dest);
		}
Exemple #30
0
 public void Or16(X86Register16 dest, Int16 value)
 {
     this.writer.Write(new byte[] { 0x66, 0x81 });
     reg_emit16((X86Register16)1, dest);
     writer.Write(value);
 }
		public void AddC16(X86Register16 dest, Int16 value) {
			this.writer.Write(new byte[] { 0x66, 0x81 });
			reg_emit16((X86Register16)0x2, dest);
			writer.Write(value);
		}
Exemple #32
0
		private void reg_emit16(X86Register16 dest, X86Register16 src) {
			address_byte(3, (byte)(dest), (byte)(src));
		}
Exemple #33
0
 internal void Emit(BinaryWriter writer, X86Register16 otherReg)
 {
     this.Emit(writer, (byte)otherReg);
 }
 public void Inc16(X86Register16 reg)
 {
     writer.Write(new byte[] { 0x66, 0xFF });
     reg_emit16((X86Register16)0, reg);
 }
		public void CmpXChg16(X86Register16 dest, X86Register16 src) {
			writer.Write(new byte[] { 0x66, 0x0F, 0xB1 });
			reg_emit16(src, dest);
		}