diff --git a/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs b/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs index d6bb686..5fcbd82 100644 --- a/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs +++ b/X86Disassembler/X86/Handlers/InstructionHandlerFactory.cs @@ -1,3 +1,4 @@ +using X86Disassembler.X86.Handlers.Jump; using X86Disassembler.X86.Handlers.Test; namespace X86Disassembler.X86.Handlers; @@ -13,7 +14,7 @@ public class InstructionHandlerFactory private readonly byte[] _codeBuffer; private readonly InstructionDecoder _decoder; private readonly int _length; - private readonly List _handlers = new List(); + private readonly List _handlers = []; /// /// Initializes a new instance of the InstructionHandlerFactory class @@ -39,18 +40,24 @@ public class InstructionHandlerFactory // Register specific instruction handlers _handlers.Add(new RetHandler(_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 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 TestRegMemHandler(_codeBuffer, _decoder, _length)); _handlers.Add(new TestAlImmHandler(_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 TwoByteConditionalJumpHandler(_codeBuffer, _decoder, _length)); - + // Register Group1 handlers RegisterGroup1Handlers(); @@ -107,10 +114,6 @@ public class InstructionHandlerFactory /// private void RegisterGroup3Handlers() { - // TEST handlers - _handlers.Add(new TestImmWithRm32Handler(_codeBuffer, _decoder, _length)); - _handlers.Add(new TestImmWithRm8Handler(_codeBuffer, _decoder, _length)); - // NOT handler _handlers.Add(new NotRm32Handler(_codeBuffer, _decoder, _length)); diff --git a/X86Disassembler/X86/Handlers/ConditionalJumpHandler.cs b/X86Disassembler/X86/Handlers/Jump/ConditionalJumpHandler.cs similarity index 98% rename from X86Disassembler/X86/Handlers/ConditionalJumpHandler.cs rename to X86Disassembler/X86/Handlers/Jump/ConditionalJumpHandler.cs index 8b36163..014cb13 100644 --- a/X86Disassembler/X86/Handlers/ConditionalJumpHandler.cs +++ b/X86Disassembler/X86/Handlers/Jump/ConditionalJumpHandler.cs @@ -1,6 +1,4 @@ -namespace X86Disassembler.X86.Handlers; - -using System; +namespace X86Disassembler.X86.Handlers.Jump; /// /// Handler for conditional jump instructions (0x70-0x7F) diff --git a/X86Disassembler/X86/Handlers/JmpRel32Handler.cs b/X86Disassembler/X86/Handlers/Jump/JmpRel32Handler.cs similarity index 97% rename from X86Disassembler/X86/Handlers/JmpRel32Handler.cs rename to X86Disassembler/X86/Handlers/Jump/JmpRel32Handler.cs index b41c251..7d2d9c7 100644 --- a/X86Disassembler/X86/Handlers/JmpRel32Handler.cs +++ b/X86Disassembler/X86/Handlers/Jump/JmpRel32Handler.cs @@ -1,4 +1,4 @@ -namespace X86Disassembler.X86.Handlers; +namespace X86Disassembler.X86.Handlers.Jump; /// /// Handler for JMP rel32 instruction (0xE9) diff --git a/X86Disassembler/X86/Handlers/JmpRel8Handler.cs b/X86Disassembler/X86/Handlers/Jump/JmpRel8Handler.cs similarity index 97% rename from X86Disassembler/X86/Handlers/JmpRel8Handler.cs rename to X86Disassembler/X86/Handlers/Jump/JmpRel8Handler.cs index 66f51f6..1c4b5f3 100644 --- a/X86Disassembler/X86/Handlers/JmpRel8Handler.cs +++ b/X86Disassembler/X86/Handlers/Jump/JmpRel8Handler.cs @@ -1,4 +1,4 @@ -namespace X86Disassembler.X86.Handlers; +namespace X86Disassembler.X86.Handlers.Jump; /// /// Handler for JMP rel8 instruction (0xEB) diff --git a/X86Disassembler/X86/Handlers/TwoByteConditionalJumpHandler.cs b/X86Disassembler/X86/Handlers/Jump/TwoByteConditionalJumpHandler.cs similarity index 98% rename from X86Disassembler/X86/Handlers/TwoByteConditionalJumpHandler.cs rename to X86Disassembler/X86/Handlers/Jump/TwoByteConditionalJumpHandler.cs index 9b59ca5..bb1a243 100644 --- a/X86Disassembler/X86/Handlers/TwoByteConditionalJumpHandler.cs +++ b/X86Disassembler/X86/Handlers/Jump/TwoByteConditionalJumpHandler.cs @@ -1,4 +1,4 @@ -namespace X86Disassembler.X86.Handlers; +namespace X86Disassembler.X86.Handlers.Jump; /// /// Handler for two-byte conditional jump instructions (0x0F 0x80-0x8F) diff --git a/X86Disassembler/X86/Handlers/Group3/TestImmWithRm32Handler.cs b/X86Disassembler/X86/Handlers/Test/TestImmWithRm32Handler.cs similarity index 97% rename from X86Disassembler/X86/Handlers/Group3/TestImmWithRm32Handler.cs rename to X86Disassembler/X86/Handlers/Test/TestImmWithRm32Handler.cs index 22d0894..3368ac3 100644 --- a/X86Disassembler/X86/Handlers/Group3/TestImmWithRm32Handler.cs +++ b/X86Disassembler/X86/Handlers/Test/TestImmWithRm32Handler.cs @@ -1,4 +1,6 @@ -namespace X86Disassembler.X86.Handlers.Group3; +using X86Disassembler.X86.Handlers.Group3; + +namespace X86Disassembler.X86.Handlers.Test; /// /// Handler for TEST r/m32, imm32 instruction (0xF7 /0) diff --git a/X86Disassembler/X86/Handlers/Group3/TestImmWithRm8Handler.cs b/X86Disassembler/X86/Handlers/Test/TestImmWithRm8Handler.cs similarity index 97% rename from X86Disassembler/X86/Handlers/Group3/TestImmWithRm8Handler.cs rename to X86Disassembler/X86/Handlers/Test/TestImmWithRm8Handler.cs index 1274e6a..20f65e7 100644 --- a/X86Disassembler/X86/Handlers/Group3/TestImmWithRm8Handler.cs +++ b/X86Disassembler/X86/Handlers/Test/TestImmWithRm8Handler.cs @@ -1,4 +1,6 @@ -namespace X86Disassembler.X86.Handlers.Group3; +using X86Disassembler.X86.Handlers.Group3; + +namespace X86Disassembler.X86.Handlers.Test; /// /// Handler for TEST r/m8, imm8 instruction (0xF6 /0) diff --git a/X86DisassemblerTests/TestInstructionHandlerTests.cs b/X86DisassemblerTests/TestInstructionHandlerTests.cs index 2893a45..e44d1f4 100644 --- a/X86DisassemblerTests/TestInstructionHandlerTests.cs +++ b/X86DisassemblerTests/TestInstructionHandlerTests.cs @@ -1,3 +1,5 @@ +using X86Disassembler.X86.Handlers.Test; + namespace X86DisassemblerTests; using System;