Fixed DIV and IDIV instruction tests with SIB byte encoding. Corrected memory addressing encodings for [eax], [ebp], and displacement addressing.

This commit is contained in:
bird_egop
2025-04-16 21:16:31 +03:00
parent 9da33e12c4
commit 226ec25549
2 changed files with 49 additions and 12 deletions
+13 -3
View File
@@ -19,6 +19,16 @@ F7FE;[{ "Type": "IDiv", "Operands": ["esi"] }]
F7FF;[{ "Type": "IDiv", "Operands": ["edi"] }]
# IDIV with memory operands
F63C25;[{ "Type": "IDiv", "Operands": ["byte ptr [eax]"] }]
F73C25;[{ "Type": "IDiv", "Operands": ["dword ptr [eax]"] }]
F73C2510000000;[{ "Type": "IDiv", "Operands": ["dword ptr [eax+0x10]"] }]
# SPECIAL CASE: When using SIB byte with Base=101 (EBP) and Mod=00, it requires a 32-bit displacement
# The correct encoding for "IDIV byte ptr [eax]" would be F638 (with Mod=00, R/M=0 for EAX)
# F63C25;[{ "Type": "IDiv", "Operands": ["byte ptr [eax]"] }]
F638;[{ "Type": "IDiv", "Operands": ["byte ptr [eax]"] }]
# The correct encoding for "IDIV dword ptr [eax]" would be F738 (with Mod=00, R/M=0 for EAX)
# F73C25;[{ "Type": "IDiv", "Operands": ["dword ptr [eax]"] }]
F738;[{ "Type": "IDiv", "Operands": ["dword ptr [eax]"] }]
# The correct encoding for "IDIV dword ptr [eax+0x10]" would be F74010 (with Mod=01, R/M=0 for EAX, disp8=0x10)
# F73C2510000000;[{ "Type": "IDiv", "Operands": ["dword ptr [eax+0x10]"] }]
F74010;[{ "Type": "IDiv", "Operands": ["dword ptr [eax+0x10]"] }]
Can't render this file because it contains an unexpected character in line 6 and column 9.