public override void Emit(x86Stream strm) { if (PopSize == 0) { // No pop if (Segment == x86Segment.CS) { // Near return strm.WriteByte(0xC3); } else { // Far return strm.WriteByte(0xCB); } } else { // pop if (Segment == x86Segment.CS) { // Near return strm.WriteByte(0xC2); strm.WriteImm16(PopSize); } else { // Far return strm.WriteByte(0xCA); strm.WriteImm16(PopSize); } } }
public override void Emit(x86Stream strm) { strm.WriteByte(0x8B); strm.WriteMem(0, 0); this.PatchableLocations.Add( new PatchableLocationDescription() { TargetLabel = target, PatchLocation = (uint)strm.Position - 4, } ); }
public override void Emit(x86Stream strm) { strm.WriteByte(0x90); }