From 03aa51d13c3f065fe557b581c06551cdfe056234 Mon Sep 17 00:00:00 2001 From: bird_egop Date: Sun, 13 Apr 2025 01:08:49 +0300 Subject: [PATCH] Removed Group1 folder and fixed handler organization. Organized handlers by instruction type instead of abstract groupings. --- .../{Group1 => Cmp}/CmpImmWithRm8Handler.cs | 0 .../X86/Handlers/InstructionHandlerFactory.cs | 35 +++---------------- .../{Group1 => Or}/OrImmWithRm8Handler.cs | 0 3 files changed, 5 insertions(+), 30 deletions(-) rename X86Disassembler/X86/Handlers/{Group1 => Cmp}/CmpImmWithRm8Handler.cs (100%) rename X86Disassembler/X86/Handlers/{Group1 => Or}/OrImmWithRm8Handler.cs (100%) diff --git a/X86Disassembler/X86/Handlers/Group1/CmpImmWithRm8Handler.cs b/X86Disassembler/X86/Handlers/Cmp/CmpImmWithRm8Handler.cs similarity index 100% rename from X86Disassembler/X86/Handlers/Group1/CmpImmWithRm8Handler.cs rename to X86Disassembler/X86/Handlers/Cmp/CmpImmWithRm8Handler.cs diff --git a/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs b/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs index 4f66009..01267fb 100644 --- a/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs +++ b/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs @@ -16,6 +16,7 @@ using X86Disassembler.X86.Handlers.Ret; using X86Disassembler.X86.Handlers.Test; using X86Disassembler.X86.Handlers.Xchg; using X86Disassembler.X86.Handlers.Xor; +using System.Linq; namespace X86Disassembler.X86.Handlers; @@ -45,54 +46,27 @@ public class InstructionHandlerFactory } /// - /// Registers all instruction handlers + /// Registers all handlers /// private void RegisterHandlers() { - // Register group handlers - RegisterArithmeticUnaryHandlers(); - RegisterArithmeticImmediateHandlers(); - // Register specific instruction handlers _handlers.Add(new Int3Handler(_codeBuffer, _decoder, _length)); - // Register Return handlers + RegisterArithmeticUnaryHandlers(); + RegisterArithmeticImmediateHandlers(); RegisterReturnHandlers(); - - // Register Call handlers RegisterCallHandlers(); - - // Register Jump handlers RegisterJumpHandlers(); - - // Register Test handlers RegisterTestHandlers(); - - // Register Xor handlers RegisterXorHandlers(); - - // Register Or handlers RegisterOrHandlers(); - - // Register Lea handlers RegisterLeaHandlers(); - - // Register Cmp handlers RegisterCmpHandlers(); - - // Register Dec handlers RegisterDecHandlers(); - - // Register Inc handlers RegisterIncHandlers(); - - // Register Add handlers RegisterAddHandlers(); - - // Register Data Transfer handlers RegisterDataTransferHandlers(); - - // Register floating point handlers RegisterFloatingPointHandlers(); } @@ -249,6 +223,7 @@ public class InstructionHandlerFactory { // Add Cmp handlers _handlers.Add(new CmpR32Rm32Handler(_codeBuffer, _decoder, _length)); + _handlers.Add(new CmpImmWithRm8Handler(_codeBuffer, _decoder, _length)); } /// diff --git a/X86Disassembler/X86/Handlers/Group1/OrImmWithRm8Handler.cs b/X86Disassembler/X86/Handlers/Or/OrImmWithRm8Handler.cs similarity index 100% rename from X86Disassembler/X86/Handlers/Group1/OrImmWithRm8Handler.cs rename to X86Disassembler/X86/Handlers/Or/OrImmWithRm8Handler.cs