2025-04-15 22:45:09 +03:00
|
|
|
# FADD instruction tests
|
|
|
|
# Format: RawBytes;Instructions
|
|
|
|
RawBytes;Instructions
|
|
|
|
|
|
|
|
# FADD - Add floating point values
|
|
|
|
# ST(0), ST(i) form (D8 C0+i)
|
|
|
|
D8C0;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(0)"] }]
|
|
|
|
D8C1;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(1)"] }]
|
|
|
|
D8C2;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(2)"] }]
|
|
|
|
D8C3;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(3)"] }]
|
|
|
|
D8C4;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(4)"] }]
|
|
|
|
D8C5;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(5)"] }]
|
|
|
|
D8C6;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(6)"] }]
|
|
|
|
D8C7;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(7)"] }]
|
|
|
|
|
|
|
|
# ST(i), ST(0) form (DC C0+i)
|
|
|
|
DCC0;[{ "Type": "Fadd", "Operands": ["ST(0)", "ST(0)"] }]
|
|
|
|
DCC1;[{ "Type": "Fadd", "Operands": ["ST(1)", "ST(0)"] }]
|
|
|
|
DCC2;[{ "Type": "Fadd", "Operands": ["ST(2)", "ST(0)"] }]
|
|
|
|
DCC3;[{ "Type": "Fadd", "Operands": ["ST(3)", "ST(0)"] }]
|
|
|
|
DCC4;[{ "Type": "Fadd", "Operands": ["ST(4)", "ST(0)"] }]
|
|
|
|
DCC5;[{ "Type": "Fadd", "Operands": ["ST(5)", "ST(0)"] }]
|
|
|
|
DCC6;[{ "Type": "Fadd", "Operands": ["ST(6)", "ST(0)"] }]
|
|
|
|
DCC7;[{ "Type": "Fadd", "Operands": ["ST(7)", "ST(0)"] }]
|
|
|
|
|
|
|
|
# Memory operands
|
2025-04-18 00:44:57 +03:00
|
|
|
D80510000000;[{ "Type": "Fadd", "Operands": ["dword ptr [0x10]"] }]
|
|
|
|
DC0510000000;[{ "Type": "Fadd", "Operands": ["qword ptr [0x10]"] }]
|
|
|
|
D800;[{ "Type": "Fadd", "Operands": ["dword ptr [eax]"] }]
|
|
|
|
DC00;[{ "Type": "Fadd", "Operands": ["qword ptr [eax]"] }]
|
|
|
|
D803;[{ "Type": "Fadd", "Operands": ["dword ptr [ebx]"] }]
|
|
|
|
DC03;[{ "Type": "Fadd", "Operands": ["qword ptr [ebx]"] }]
|
|
|
|
D84500;[{ "Type": "Fadd", "Operands": ["dword ptr [ebp+0x00]"] }]
|
|
|
|
DC4500;[{ "Type": "Fadd", "Operands": ["qword ptr [ebp+0x00]"] }]
|
2025-04-15 22:45:09 +03:00
|
|
|
|
|
|
|
# With segment override prefixes
|
2025-04-18 00:44:57 +03:00
|
|
|
26D800;[{ "Type": "Fadd", "Operands": ["dword ptr es:[eax]"] }]
|
|
|
|
2ED800;[{ "Type": "Fadd", "Operands": ["dword ptr cs:[eax]"] }]
|
|
|
|
36D800;[{ "Type": "Fadd", "Operands": ["dword ptr ss:[eax]"] }]
|
|
|
|
3ED800;[{ "Type": "Fadd", "Operands": ["dword ptr ds:[eax]"] }]
|
|
|
|
64D800;[{ "Type": "Fadd", "Operands": ["dword ptr fs:[eax]"] }]
|
|
|
|
65D800;[{ "Type": "Fadd", "Operands": ["dword ptr gs:[eax]"] }]
|
2025-04-15 22:45:09 +03:00
|
|
|
|
|
|
|
# FADDP - Add floating point values and pop
|
|
|
|
DEC0;[{ "Type": "Faddp", "Operands": ["ST(0)", "ST(0)"] }]
|
|
|
|
DEC1;[{ "Type": "Faddp", "Operands": ["ST(1)", "ST(0)"] }]
|
|
|
|
DEC2;[{ "Type": "Faddp", "Operands": ["ST(2)", "ST(0)"] }]
|
|
|
|
DEC3;[{ "Type": "Faddp", "Operands": ["ST(3)", "ST(0)"] }]
|
|
|
|
DEC4;[{ "Type": "Faddp", "Operands": ["ST(4)", "ST(0)"] }]
|
|
|
|
DEC5;[{ "Type": "Faddp", "Operands": ["ST(5)", "ST(0)"] }]
|
|
|
|
DEC6;[{ "Type": "Faddp", "Operands": ["ST(6)", "ST(0)"] }]
|
|
|
|
DEC7;[{ "Type": "Faddp", "Operands": ["ST(7)", "ST(0)"] }]
|
|
|
|
|
|
|
|
# FIADD - Add integer to floating point
|
|
|
|
DA042510000000;[{ "Type": "Fiadd", "Operands": ["dword ptr [0x10]"] }]
|
|
|
|
DE042510000000;[{ "Type": "Fiadd", "Operands": ["word ptr [0x10]"] }]
|
2025-04-18 00:44:57 +03:00
|
|
|
|
|
|
|
# Corrected FIADD tests
|
|
|
|
DA00;[{ "Type": "Fiadd", "Operands": ["dword ptr [eax]"] }]
|
|
|
|
DE00;[{ "Type": "Fiadd", "Operands": ["word ptr [eax]"] }]
|
|
|
|
DA03;[{ "Type": "Fiadd", "Operands": ["dword ptr [ebx]"] }]
|
|
|
|
DE03;[{ "Type": "Fiadd", "Operands": ["word ptr [ebx]"] }]
|