mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-19 03:41:18 +03:00
58 lines
2.7 KiB
CSV
58 lines
2.7 KiB
CSV
# IMUL instruction tests
|
|
# Format: RawBytes;Instructions
|
|
RawBytes;Instructions
|
|
|
|
# IMUL r/m8 (opcode F6 /5)
|
|
F6E8;[{ "Type": "IMul", "Operands": ["al"] }]
|
|
F6EB;[{ "Type": "IMul", "Operands": ["bl"] }]
|
|
F6E9;[{ "Type": "IMul", "Operands": ["cl"] }]
|
|
F6EA;[{ "Type": "IMul", "Operands": ["dl"] }]
|
|
|
|
# IMUL r/m32 (opcode F7 /5)
|
|
F7E8;[{ "Type": "IMul", "Operands": ["eax"] }]
|
|
F7EB;[{ "Type": "IMul", "Operands": ["ebx"] }]
|
|
F7E9;[{ "Type": "IMul", "Operands": ["ecx"] }]
|
|
F7EA;[{ "Type": "IMul", "Operands": ["edx"] }]
|
|
F7EC;[{ "Type": "IMul", "Operands": ["esp"] }]
|
|
F7ED;[{ "Type": "IMul", "Operands": ["ebp"] }]
|
|
F7EE;[{ "Type": "IMul", "Operands": ["esi"] }]
|
|
F7EF;[{ "Type": "IMul", "Operands": ["edi"] }]
|
|
|
|
# IMUL r32, r/m32 (opcode 0F AF)
|
|
0FAFC3;[{ "Type": "IMul", "Operands": ["eax", "ebx"] }]
|
|
0FAFD8;[{ "Type": "IMul", "Operands": ["ebx", "eax"] }]
|
|
0FAFC9;[{ "Type": "IMul", "Operands": ["ecx", "ecx"] }]
|
|
|
|
# IMUL r32, r/m32, imm8 (opcode 6B)
|
|
6BC310;[{ "Type": "IMul", "Operands": ["eax", "ebx", "0x10"] }]
|
|
6BD810;[{ "Type": "IMul", "Operands": ["ebx", "eax", "0x10"] }]
|
|
6BC910;[{ "Type": "IMul", "Operands": ["ecx", "ecx", "0x10"] }]
|
|
|
|
# IMUL r32, r/m32, imm32 (opcode 69)
|
|
69C378563412;[{ "Type": "IMul", "Operands": ["eax", "ebx", "0x12345678"] }]
|
|
69D878563412;[{ "Type": "IMul", "Operands": ["ebx", "eax", "0x12345678"] }]
|
|
69C978563412;[{ "Type": "IMul", "Operands": ["ecx", "ecx", "0x12345678"] }]
|
|
|
|
# IMUL with memory operands
|
|
|
|
# SPECIAL CASE: When using SIB byte with Base=101 (EBP) and Mod=00, it requires a 32-bit displacement
|
|
# The correct encoding for "IMUL byte ptr [eax]" would be F628 (with Mod=00, R/M=0 for EAX)
|
|
# F62C25;[{ "Type": "IMul", "Operands": ["byte ptr [eax]"] }]
|
|
F628;[{ "Type": "IMul", "Operands": ["byte ptr [eax]"] }]
|
|
|
|
# The correct encoding for "IMUL dword ptr [eax]" would be F728 (with Mod=00, R/M=0 for EAX)
|
|
# F72C25;[{ "Type": "IMul", "Operands": ["dword ptr [eax]"] }]
|
|
F728;[{ "Type": "IMul", "Operands": ["dword ptr [eax]"] }]
|
|
|
|
# The correct encoding for "IMUL eax, dword ptr [eax]" would be 0FAF00 (with Mod=00, R/M=0 for EAX)
|
|
# 0FAF0425;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]"] }]
|
|
0FAF00;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]"] }]
|
|
|
|
# The correct encoding for "IMUL eax, dword ptr [eax], 0x10" would be 6B0010 (with Mod=00, R/M=0 for EAX)
|
|
# 6B042510;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]", "0x10"] }]
|
|
6B0010;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]", "0x10"] }]
|
|
|
|
# The correct encoding for "IMUL eax, dword ptr [eax], 0x12345678" would be 690078563412 (with Mod=00, R/M=0 for EAX)
|
|
# 69042578563412;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]", "0x12345678"] }]
|
|
690078563412;[{ "Type": "IMul", "Operands": ["eax", "dword ptr [eax]", "0x12345678"] }]
|