0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-06-19 16:08:02 +03:00

Reorganized instruction handlers into more descriptive folders (ArithmeticImmediate and ArithmeticUnary)

This commit is contained in:
bird_egop
2025-04-12 23:46:05 +03:00
parent f658f4384c
commit 016e1ee54f
26 changed files with 52 additions and 55 deletions

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for ADC r/m32, imm32 instruction (0x81 /2)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for ADC r/m32, imm8 (sign-extended) instruction (0x83 /2)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for ADD r/m32, imm32 instruction (0x81 /0)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for ADD r/m32, imm8 (sign-extended) instruction (0x83 /0)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for ADD r/m8, imm8 instruction (0x80 /0)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for AND r/m32, imm32 instruction (0x81 /4)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for AND r/m32, imm8 (sign-extended) instruction (0x83 /4)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for CMP r/m32, imm32 instruction (0x81 /7)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for CMP r/m32, imm8 (sign-extended) instruction (0x83 /7)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for OR r/m32, imm32 instruction (0x81 /1)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for OR r/m32, imm8 (sign-extended) instruction (0x83 /1)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for OR r/m8, imm8 instruction (0x80 /1)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for SBB r/m32, imm32 instruction (0x81 /3)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for SBB r/m32, imm8 (sign-extended) instruction (0x83 /3)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for SUB r/m32, imm32 instruction (0x81 /5)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group1;
namespace X86Disassembler.X86.Handlers.ArithmeticImmediate;
/// <summary>
/// Handler for SUB r/m32, imm8 (sign-extended) instruction (0x83 /5)

View File

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

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.ArithmeticUnary;
/// <summary>
/// Handler for IDIV r/m32 instruction (0xF7 /7)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.ArithmeticUnary;
/// <summary>
/// Handler for IMUL r/m32 instruction (0xF7 /5)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.ArithmeticUnary;
/// <summary>
/// Handler for MUL r/m32 instruction (0xF7 /4)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.ArithmeticUnary;
/// <summary>
/// Handler for NEG r/m32 instruction (0xF7 /3)

View File

@ -1,4 +1,4 @@
namespace X86Disassembler.X86.Handlers.Group3;
namespace X86Disassembler.X86.Handlers.ArithmeticUnary;
/// <summary>
/// Handler for NOT r/m32 instruction (0xF7 /2)

View File

@ -1,7 +1,7 @@
using X86Disassembler.X86.Handlers.ArithmeticImmediate;
using X86Disassembler.X86.Handlers.ArithmeticUnary;
using X86Disassembler.X86.Handlers.Call;
using X86Disassembler.X86.Handlers.FloatingPoint;
using X86Disassembler.X86.Handlers.Group1;
using X86Disassembler.X86.Handlers.Group3;
using X86Disassembler.X86.Handlers.Jump;
using X86Disassembler.X86.Handlers.Mov;
using X86Disassembler.X86.Handlers.Pop;
@ -44,8 +44,8 @@ public class InstructionHandlerFactory
private void RegisterHandlers()
{
// Register group handlers
RegisterGroup3Handlers();
RegisterGroup1Handlers();
RegisterArithmeticUnaryHandlers();
RegisterArithmeticImmediateHandlers();
// Register specific instruction handlers
_handlers.Add(new Int3Handler(_codeBuffer, _decoder, _length));
@ -73,9 +73,33 @@ public class InstructionHandlerFactory
}
/// <summary>
/// Registers all Group1 instruction handlers
/// Registers all ArithmeticUnary instruction handlers
/// </summary>
private void RegisterGroup1Handlers()
private void RegisterArithmeticUnaryHandlers()
{
// NOT handler
_handlers.Add(new NotRm32Handler(_codeBuffer, _decoder, _length));
// NEG handler
_handlers.Add(new NegRm32Handler(_codeBuffer, _decoder, _length));
// MUL handler
_handlers.Add(new MulRm32Handler(_codeBuffer, _decoder, _length));
// IMUL handler
_handlers.Add(new ImulRm32Handler(_codeBuffer, _decoder, _length));
// DIV handler
_handlers.Add(new DivRm32Handler(_codeBuffer, _decoder, _length));
// IDIV handler
_handlers.Add(new IdivRm32Handler(_codeBuffer, _decoder, _length));
}
/// <summary>
/// Registers all ArithmeticImmediate instruction handlers
/// </summary>
private void RegisterArithmeticImmediateHandlers()
{
// ADD handlers
_handlers.Add(new AddImmToRm8Handler(_codeBuffer, _decoder, _length));
@ -112,30 +136,6 @@ public class InstructionHandlerFactory
_handlers.Add(new CmpImmWithRm32SignExtendedHandler(_codeBuffer, _decoder, _length));
}
/// <summary>
/// Registers all Group3 instruction handlers
/// </summary>
private void RegisterGroup3Handlers()
{
// NOT handler
_handlers.Add(new NotRm32Handler(_codeBuffer, _decoder, _length));
// NEG handler
_handlers.Add(new NegRm32Handler(_codeBuffer, _decoder, _length));
// MUL handler
_handlers.Add(new MulRm32Handler(_codeBuffer, _decoder, _length));
// IMUL handler
_handlers.Add(new ImulRm32Handler(_codeBuffer, _decoder, _length));
// DIV handler
_handlers.Add(new DivRm32Handler(_codeBuffer, _decoder, _length));
// IDIV handler
_handlers.Add(new IdivRm32Handler(_codeBuffer, _decoder, _length));
}
/// <summary>
/// Registers all Return instruction handlers
/// </summary>