0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-19 20:01:17 +03:00

move handlers

This commit is contained in:
bird_egop 2025-04-12 21:34:16 +03:00
parent a6b6cc1149
commit 794b56c6b5
8 changed files with 24 additions and 17 deletions

View File

@ -1,3 +1,4 @@
using X86Disassembler.X86.Handlers.Jump;
using X86Disassembler.X86.Handlers.Test; using X86Disassembler.X86.Handlers.Test;
namespace X86Disassembler.X86.Handlers; namespace X86Disassembler.X86.Handlers;
@ -13,7 +14,7 @@ public class InstructionHandlerFactory
private readonly byte[] _codeBuffer; private readonly byte[] _codeBuffer;
private readonly InstructionDecoder _decoder; private readonly InstructionDecoder _decoder;
private readonly int _length; private readonly int _length;
private readonly List<IInstructionHandler> _handlers = new List<IInstructionHandler>(); private readonly List<IInstructionHandler> _handlers = [];
/// <summary> /// <summary>
/// Initializes a new instance of the InstructionHandlerFactory class /// Initializes a new instance of the InstructionHandlerFactory class
@ -39,15 +40,21 @@ public class InstructionHandlerFactory
// Register specific instruction handlers // Register specific instruction handlers
_handlers.Add(new RetHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new RetHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new RetImmHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new RetImmHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new JmpRel32Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new JmpRel8Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new CallRel32Handler(_codeBuffer, _decoder, _length)); _handlers.Add(new CallRel32Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new XorRegMemHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new XorRegMemHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new FnstswHandler(_codeBuffer, _decoder, _length));
// TEST handlers
_handlers.Add(new TestImmWithRm32Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestImmWithRm8Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestRegMem8Handler(_codeBuffer, _decoder, _length)); _handlers.Add(new TestRegMem8Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestRegMemHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new TestRegMemHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestAlImmHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new TestAlImmHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestEaxImmHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new TestEaxImmHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new FnstswHandler(_codeBuffer, _decoder, _length));
// JMP handlers
_handlers.Add(new JmpRel32Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new JmpRel8Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new ConditionalJumpHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new ConditionalJumpHandler(_codeBuffer, _decoder, _length));
_handlers.Add(new TwoByteConditionalJumpHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new TwoByteConditionalJumpHandler(_codeBuffer, _decoder, _length));
@ -107,10 +114,6 @@ public class InstructionHandlerFactory
/// </summary> /// </summary>
private void RegisterGroup3Handlers() private void RegisterGroup3Handlers()
{ {
// TEST handlers
_handlers.Add(new TestImmWithRm32Handler(_codeBuffer, _decoder, _length));
_handlers.Add(new TestImmWithRm8Handler(_codeBuffer, _decoder, _length));
// NOT handler // NOT handler
_handlers.Add(new NotRm32Handler(_codeBuffer, _decoder, _length)); _handlers.Add(new NotRm32Handler(_codeBuffer, _decoder, _length));

View File

@ -1,6 +1,4 @@
namespace X86Disassembler.X86.Handlers; namespace X86Disassembler.X86.Handlers.Jump;
using System;
/// <summary> /// <summary>
/// Handler for conditional jump instructions (0x70-0x7F) /// Handler for conditional jump instructions (0x70-0x7F)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers; namespace X86Disassembler.X86.Handlers.Jump;
/// <summary> /// <summary>
/// Handler for JMP rel32 instruction (0xE9) /// Handler for JMP rel32 instruction (0xE9)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers; namespace X86Disassembler.X86.Handlers.Jump;
/// <summary> /// <summary>
/// Handler for JMP rel8 instruction (0xEB) /// Handler for JMP rel8 instruction (0xEB)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers; namespace X86Disassembler.X86.Handlers.Jump;
/// <summary> /// <summary>
/// Handler for two-byte conditional jump instructions (0x0F 0x80-0x8F) /// Handler for two-byte conditional jump instructions (0x0F 0x80-0x8F)

View File

@ -1,4 +1,6 @@
namespace X86Disassembler.X86.Handlers.Group3; using X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.Test;
/// <summary> /// <summary>
/// Handler for TEST r/m32, imm32 instruction (0xF7 /0) /// Handler for TEST r/m32, imm32 instruction (0xF7 /0)

View File

@ -1,4 +1,6 @@
namespace X86Disassembler.X86.Handlers.Group3; using X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.Test;
/// <summary> /// <summary>
/// Handler for TEST r/m8, imm8 instruction (0xF6 /0) /// Handler for TEST r/m8, imm8 instruction (0xF6 /0)

View File

@ -1,3 +1,5 @@
using X86Disassembler.X86.Handlers.Test;
namespace X86DisassemblerTests; namespace X86DisassemblerTests;
using System; using System;