0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-06-20 16:18:37 +03:00

Implemented NOP instruction handlers for multi-byte NOP variants

This commit is contained in:
bird_egop
2025-04-13 18:00:26 +03:00
parent 032030169e
commit 8cf26060f2
5 changed files with 233 additions and 0 deletions

View File

@ -10,6 +10,7 @@ using X86Disassembler.X86.Handlers.Inc;
using X86Disassembler.X86.Handlers.Jump;
using X86Disassembler.X86.Handlers.Lea;
using X86Disassembler.X86.Handlers.Mov;
using X86Disassembler.X86.Handlers.Nop;
using X86Disassembler.X86.Handlers.Or;
using X86Disassembler.X86.Handlers.Pop;
using X86Disassembler.X86.Handlers.Push;
@ -78,6 +79,7 @@ public class InstructionHandlerFactory
RegisterStringHandlers();
RegisterMovHandlers();
RegisterSubHandlers(); // Register SUB handlers
RegisterNopHandlers(); // Register NOP handlers
}
/// <summary>
@ -396,6 +398,17 @@ public class InstructionHandlerFactory
_handlers.Add(new SubImmFromRm8Handler(_codeBuffer, _decoder, _length));
}
/// <summary>
/// Registers all NOP instruction handlers
/// </summary>
private void RegisterNopHandlers()
{
// Register NOP handlers
_handlers.Add(new NopHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new TwoByteNopHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new MultiByteNopHandler(_codeBuffer, _decoder, _length));
}
/// <summary>
/// Gets the handler that can decode the given opcode
/// </summary>