Skip to content

v1.5.0

Compare
Choose a tag to compare
@0xd4d 0xd4d released this 26 Jan 19:57
· 2213 commits to master since this release
  • Assembler class was added (thanks to @xoofx for adding this feature!) which lets you easily add instructions with a syntax that looks like assembler, eg. c.imul(rcx, __[rdx*8+0x10], -10). It supports all instructions and all modes (16/32/64-bit). See the example in the README for more info.
  • Removed net35 tfm, added netstandard2.1 tfm
  • Added Instruction.HasSegmentPrefix property
  • Added Encoder.WriteByte()
  • Enabling upper case disassembly doesn't allocate temp strings
  • Added OpCodeOperandKind.r{16,32,64}_reg_mem for movdir64b/enqcmd{s,}
  • Added StreamCodeWriter and StreamCodeReader
  • FIX: VZERO{UPPER,ALL} don't touch regs 16-31
  • BlockEncoder.TryEncode() signature got updated with a BlockEncoderResult
  • Instruction.GetInfo()/GetUsedRegisters()/GetUsedMemory() were removed, and the docs never recommended using them. Use InstructionInfoFactory instead.
  • FormatterOperandOptions is now a struct, used to be a flags enum.
  • Instruction.Create() methods now throw if the immediate value is invalid
  • Obsoleted StringBuilderFormatterOutput, use StringOutput instead (shorter name!)
  • Renamed FormatterOutputTextKind -> FormatterTextKind