bird_egop
d3d2c4c63f
Simplified TestRegMem8Handler by removing unused variables and improving code structure
2025-04-14 00:54:16 +03:00
bird_egop
b7c6092b7f
Simplified TEST instruction handlers by removing special cases and improving code structure
2025-04-14 00:53:16 +03:00
bird_egop
dae52fc3ec
Simplified SubImmFromRm32SignExtendedHandler by removing special case for operand type-based formatting
2025-04-14 00:41:58 +03:00
bird_egop
5b09d6f9b8
Simplified SubImmFromRm16SignExtendedHandler by removing special case for register name conversion
2025-04-14 00:39:58 +03:00
bird_egop
689195c6e5
Simplified SubImmFromRm16Handler by removing special case for register name conversion and improving boundary checking
2025-04-14 00:38:47 +03:00
bird_egop
e134452eda
Improved PUSH handlers by moving reg field check to CanHandle and adding proper boundary checking
2025-04-14 00:33:39 +03:00
bird_egop
53696a9f1c
Removed special case check for 0x83 in OrRm8R8Handler to avoid introducing special cases in general solutions
2025-04-14 00:30:53 +03:00
bird_egop
243789892d
Further simplified MultiByteNopHandler by using an array of tuples and matching patterns from longest to shortest
2025-04-14 00:23:58 +03:00
bird_egop
4b549f4b1b
Simplified MultiByteNopHandler by using a dictionary-based approach to replace complex conditional logic
2025-04-14 00:21:24 +03:00
bird_egop
c9901aa9b8
Simplified MovRm32Imm32Handler by improving boundary checking and error handling, and updated test to match expected behavior
2025-04-14 00:19:36 +03:00
bird_egop
2d0f701dd1
Simplified TwoByteConditionalJumpHandler and MovRegMemHandler by improving boundary checking and target address calculation
2025-04-14 00:17:31 +03:00
bird_egop
996be18172
Simplified JmpRel32Handler by improving target address calculation and code organization
2025-04-14 00:11:55 +03:00
bird_egop
38770de005
Simplified jump instruction handlers by using consistent decoder methods and improving code organization
2025-04-14 00:09:44 +03:00
bird_egop
5daab494e1
Simplified LoadStoreInt32Handler by replacing if-else logic with a dictionary-based approach
2025-04-14 00:00:30 +03:00
bird_egop
fac1339fec
Simplified LoadStoreInt16Handler by replacing complex logic with a dictionary-based approach and improving memory operand handling
2025-04-13 23:53:27 +03:00
bird_egop
4e837f5c63
Simplified LoadStoreFloat64Handler by replacing if-else logic with a dictionary-based approach
2025-04-13 23:52:00 +03:00
bird_egop
b531db77d5
Simplified LoadStoreControlHandler by replacing complex switch statements with a dictionary-based approach
2025-04-13 23:50:23 +03:00
bird_egop
0ff20494e1
Simplified Int32OperationHandler by replacing complex if-else logic with a dictionary-based approach
2025-04-13 23:48:45 +03:00
bird_egop
46a4696481
Simplified Int16OperationHandler by replacing complex if-else logic with a dictionary-based approach
2025-04-13 23:47:10 +03:00
bird_egop
7ab388f26d
Simplified FnstswHandler by using CanReadByte for boundary checking and improving code readability
2025-04-13 23:45:26 +03:00
bird_egop
ec1aa4a124
Simplified CmpImmWithRm8Handler by removing unnecessary raw bytes handling and improving operand formatting
2025-04-13 23:41:30 +03:00
bird_egop
ec70b31058
Simplified CmpImmWithRm32Handler and added AndImmWithRm32Handler
2025-04-13 23:39:57 +03:00
bird_egop
8d1522b6cb
Added XML documentation comments to buffer reading methods in InstructionDecoder
2025-04-13 23:36:53 +03:00
bird_egop
6827cb735e
Simplified StringInstructionHandler by combining mnemonic and operands into a single dictionary and removing redundant switch statement
2025-04-13 23:24:14 +03:00
bird_egop
00547ed273
simplify reading logic
2025-04-13 23:22:30 +03:00
bird_egop
0ea3294c61
Simplified AndImmToRm32SignExtendedHandler for better maintainability and consistency
2025-04-13 23:18:38 +03:00
bird_egop
f19f2254fe
Simplified AndImmToRm8Handler for better maintainability and consistency
2025-04-13 23:16:34 +03:00
bird_egop
cf1e1acf71
Simplified instruction handlers for better maintainability and consistency. Fixed operand size handling in XOR handlers with 16-bit registers. Added support for 6-byte NOP variant. Fixed formatting of immediate values to maintain consistent output.
2025-04-13 23:15:11 +03:00
bird_egop
11a2cfada4
nice big refactor
2025-04-13 23:06:52 +03:00
bird_egop
59df064ca4
broken tests
2025-04-13 20:20:51 +03:00
bird_egop
89b2b32cd6
fix xor AX, 16bit imm
2025-04-13 19:55:13 +03:00
bird_egop
b0ade45f1b
refactor xors
2025-04-13 19:35:28 +03:00
bird_egop
30676b36a1
Updated InstructionHandlerFactory to register XOR handlers and updated test project files
2025-04-13 19:28:56 +03:00
bird_egop
56c12b552c
Fixed XOR instruction handlers for consistent immediate value handling
2025-04-13 19:26:08 +03:00
bird_egop
e91a0223f7
Refactor SUB handlers
2025-04-13 18:22:44 +03:00
bird_egop
a04a16af7d
Updated NOP instruction handlers to match Ghidra's output format
2025-04-13 18:09:13 +03:00
bird_egop
8cf26060f2
Implemented NOP instruction handlers for multi-byte NOP variants
2025-04-13 18:00:26 +03:00
bird_egop
032030169e
Added comprehensive test cases for SUB instructions with complex addressing modes
2025-04-13 17:55:29 +03:00
bird_egop
b11b39ac4e
Implemented 16-bit SUB instruction handlers and fixed test data
2025-04-13 17:51:54 +03:00
bird_egop
d1d52af511
Added CSV test files for various instruction types and enabled comments in CSV files
2025-04-13 17:17:28 +03:00
bird_egop
3f4b9a8547
Optimized HexStringToByteArray method using spans for better performance
2025-04-13 17:07:09 +03:00
bird_egop
2cdd9f1e83
move tests to csv
2025-04-13 17:02:46 +03:00
bird_egop
565158d9bd
Fixed immediate value formatting in Group1 instruction handlers
2025-04-13 16:00:46 +03:00
bird_egop
2c85192d13
Fixed byte order handling in SUB instruction handlers and updated tests
...
Implemented SUB r32, r/m32 instruction handlers and tests
Added comprehensive tests for Push/Pop, Xchg, Sub instructions and enhanced segment override tests
2025-04-13 14:36:49 +03:00
bird_egop
44c73321ea
move handlers to respective folders
2025-04-13 04:13:44 +03:00
bird_egop
e8a16e7ecd
Moved AND instruction handlers from ArithmeticImmediate to dedicated And namespace for better organization
2025-04-13 04:11:06 +03:00
bird_egop
af94b88868
Added comprehensive test coverage for arithmetic and logical instructions. Implemented AND instruction handlers and added tests for ADC, SBB, and arithmetic unary operations.
2025-04-13 04:07:37 +03:00
bird_egop
b215908d76
fixups
2025-04-13 03:56:39 +03:00
bird_egop
611dce32e5
Fixed operand order in MOV instructions and updated tests to match disassembler output
2025-04-13 03:56:09 +03:00
bird_egop
b2929c38e9
Replaced all Assert.Contains with strict Assert.Equal in tests for better validation
2025-04-13 03:38:50 +03:00
bird_egop
0d271abdcb
Replaced Assert.Contains with strict Assert.Equal in tests for better validation
2025-04-13 03:33:51 +03:00
bird_egop
b718745d7a
Fixed MovRm32Imm32Handler to properly handle instruction boundaries
2025-04-13 03:25:20 +03:00
bird_egop
17ef78a7a7
Fixed instruction boundary detection and added JGE instruction handler
2025-04-13 03:19:42 +03:00
bird_egop
e12f5b5bdf
Fixed instruction boundary detection for complex instruction sequences
2025-04-13 03:08:37 +03:00
bird_egop
33b151d856
Fixed instruction boundary detection by improving MovRm8Imm8Handler
2025-04-13 03:00:31 +03:00
bird_egop
465056dd9a
Fixed instruction boundary detection for the specific sequence at address 0x00001874
2025-04-13 02:51:51 +03:00
bird_egop
618ee641a8
Added OrRm8R8Handler for decoding OR r/m8, r8 instruction (opcode 0x08)
2025-04-13 02:35:48 +03:00
bird_egop
d46d03ce65
Added AddEaxImmHandler for decoding ADD EAX, imm32 instruction (opcode 0x05)
2025-04-13 02:31:08 +03:00
bird_egop
d0667950f8
Added proper REPNE prefix handling and comprehensive string instruction tests
2025-04-13 02:26:49 +03:00
bird_egop
79bf419c07
Consolidated string instruction handling by enhancing StringInstructionHandler to handle both regular and REP/REPNE prefixed instructions
2025-04-13 02:23:27 +03:00
bird_egop
efd9141b39
Made StringInstructionHandler self-contained by removing dependency on OpcodeMap
2025-04-13 02:20:49 +03:00
bird_egop
bdd691a021
Inlined local methods in StringInstructionHandler for better readability
2025-04-13 02:19:19 +03:00
bird_egop
410211fcc6
Converted StringInstructionDecoder to StringInstructionHandler for better consistency with handler pattern
2025-04-13 02:18:12 +03:00
bird_egop
9dfa559045
Refactored instruction decoder to improve modularity. Created StringInstructionDecoder and updated PrefixDecoder. Fixed handler registration in InstructionHandlerFactory.
2025-04-13 02:16:12 +03:00
bird_egop
c14a92bf04
Added support for string instructions with REP prefix, specifically F3 A5 (REP MOVS)
2025-04-13 02:10:48 +03:00
bird_egop
bfaeba0d5f
Fixed segment override prefix handling for 0x64 (FS) opcode with tests
2025-04-13 01:39:38 +03:00
bird_egop
b4a85d2839
fix duplicated code
2025-04-13 01:36:11 +03:00
bird_egop
52841237c1
Added CmpRm32R32Handler for CMP r/m32, r32 instruction (0x39) with tests
2025-04-13 01:34:56 +03:00
bird_egop
28ba47bfab
add factory tests
2025-04-13 01:30:58 +03:00
bird_egop
c701fdb435
Added CmpAlImmHandler for CMP AL, imm8 instruction (0x3C) with tests
2025-04-13 01:30:42 +03:00
bird_egop
9cad5ff95c
fixup
2025-04-13 01:11:45 +03:00
bird_egop
8123ced2d6
Removed duplicate OR instruction handlers and files to fix handler organization
2025-04-13 01:11:20 +03:00
bird_egop
03aa51d13c
Removed Group1 folder and fixed handler organization. Organized handlers by instruction type instead of abstract groupings.
2025-04-13 01:08:49 +03:00
bird_egop
b8a37e626c
Implemented Group1 instruction handlers for CMP r/m8, imm8 and fixed OR r/m8, imm8
2025-04-13 01:02:37 +03:00
bird_egop
402cdc68fb
Added support for INC r32 instructions (0x40-0x47) with tests
2025-04-13 00:55:20 +03:00
bird_egop
7d23af32fa
Added support for MOV r/m8, imm8 (0xC6) and ADD r/m32, r32 (0x01) instructions with tests
2025-04-13 00:50:23 +03:00
bird_egop
266fdfeee5
Added support for CALL r/m32 (0xFF /2) and ADD r32, r/m32 (0x03) instructions with tests
2025-04-13 00:45:53 +03:00
bird_egop
393aac5bf6
Added support for DEC r32 instructions (0x48-0x4F) with tests
2025-04-13 00:41:36 +03:00
bird_egop
439b6576b7
Added support for CMP r32, r/m32 (0x3B) and MOV r/m32, imm32 (0xC7) instructions with tests
2025-04-13 00:38:38 +03:00
bird_egop
70f2acd3d1
Added support for LEA instruction (opcode 0x8D) with tests
2025-04-13 00:34:03 +03:00
bird_egop
79bb19df6b
Reorganized OR instruction handlers into a dedicated folder
2025-04-13 00:28:20 +03:00
bird_egop
94a61a17a1
Added complete set of OR instruction handlers with tests
2025-04-13 00:26:13 +03:00
bird_egop
3ffaaf0057
Added support for OR r8, r/m8 instruction (opcode 0x0A) with tests
2025-04-13 00:23:11 +03:00
bird_egop
7063a4a5a8
fix float
2025-04-13 00:21:01 +03:00
bird_egop
016e1ee54f
Reorganized instruction handlers into more descriptive folders (ArithmeticImmediate and ArithmeticUnary)
2025-04-12 23:46:05 +03:00
bird_egop
f658f4384c
cleanup
2025-04-12 23:40:48 +03:00
bird_egop
3cc6d27e33
Split FloatingPointHandler into specialized handlers for each instruction type and fixed FLDCW instruction formatting
2025-04-12 23:33:40 +03:00
bird_egop
82653f96f2
split float handlers
2025-04-12 23:24:42 +03:00
bird_egop
bb695cf3bb
move handlers, remove bases
2025-04-12 23:03:07 +03:00
bird_egop
acccf5169a
Fixed FnstswHandler test by registering the handler in InstructionHandlerFactory
2025-04-12 22:34:02 +03:00
bird_egop
c027adc113
split and move handlers
2025-04-12 22:18:46 +03:00
bird_egop
0cc03c2479
Added test for INT3 instruction handler
2025-04-12 22:16:12 +03:00
bird_egop
3ea408d088
Improved XCHG instruction test to be more flexible about operand order
2025-04-12 22:10:01 +03:00
bird_egop
d5bcd56774
Added tests for previously untested DataTransferHandler methods and fixed NOP instruction handling
2025-04-12 22:05:51 +03:00
bird_egop
759d28f9a7
Added comprehensive tests for instruction handlers
2025-04-12 22:00:15 +03:00
bird_egop
5ede2bd3c6
remove comments
2025-04-12 21:54:06 +03:00
bird_egop
a0e40c8a52
Fixed instruction handlers and tests for Group1, Group3, and XOR instructions
2025-04-12 21:48:41 +03:00
bird_egop
f107b8e763
Added comprehensive tests for various instruction handlers. Created test files for Jump, Return, XOR, Group1, Group3, and Call instructions. Fixed ConditionalJumpHandler test to use 'jz' instead of 'je' since they are equivalent in x86.
2025-04-12 21:38:47 +03:00
bird_egop
794b56c6b5
move handlers
2025-04-12 21:34:16 +03:00
bird_egop
a6b6cc1149
Removed two-byte instruction handling from FloatingPointHandler. Simplified the code by removing the TwoByteInstructions dictionary and related methods since we now have dedicated handlers for specific instructions.
2025-04-12 21:29:43 +03:00