0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-07-02 04:50:27 +03:00

Added support for far call instructions and PUSH imm16. Fixed invalid test cases in call_tests.csv and or_tests.csv

This commit is contained in:
bird_egop
2025-04-16 21:44:02 +03:00
parent 089fe4dfd4
commit fa1a7f582c
7 changed files with 304 additions and 4 deletions

View File

@ -137,8 +137,9 @@ public class InstructionHandlerFactory
private void RegisterCallHandlers()
{
// Add Call handlers
_handlers.Add(new CallRel32Handler(_decoder));
_handlers.Add(new CallRm32Handler(_decoder));
_handlers.Add(new CallRel32Handler(_decoder)); // CALL rel32 (opcode E8)
_handlers.Add(new CallRm32Handler(_decoder)); // CALL r/m32 (opcode FF /2)
_handlers.Add(new CallFarPtrHandler(_decoder)); // CALL m16:32 (opcode FF /3) - Far call
}
/// <summary>
@ -378,6 +379,7 @@ public class InstructionHandlerFactory
// Add PUSH immediate handlers
_handlers.Add(new PushImm32Handler(_decoder)); // PUSH imm32 (opcode 68)
_handlers.Add(new PushImm16Handler(_decoder)); // PUSH imm16 with operand size prefix (0x66 0x68)
_handlers.Add(new PushImm8Handler(_decoder)); // PUSH imm8 (opcode 6A)
}