0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-19 11:51:17 +03:00

35 lines
1.5 KiB
CSV
Raw Normal View History

2025-04-15 22:20:46 +03:00
# NOT instruction tests
# Format: RawBytes;Instructions
RawBytes;Instructions
# NOT r/m8 (opcode F6 /2)
F6D0;[{ "Type": "Not", "Operands": ["al"] }]
F6D3;[{ "Type": "Not", "Operands": ["bl"] }]
F6D1;[{ "Type": "Not", "Operands": ["cl"] }]
F6D2;[{ "Type": "Not", "Operands": ["dl"] }]
# NOT r/m32 (opcode F7 /2)
F7D0;[{ "Type": "Not", "Operands": ["eax"] }]
F7D3;[{ "Type": "Not", "Operands": ["ebx"] }]
F7D1;[{ "Type": "Not", "Operands": ["ecx"] }]
F7D2;[{ "Type": "Not", "Operands": ["edx"] }]
F7D4;[{ "Type": "Not", "Operands": ["esp"] }]
F7D5;[{ "Type": "Not", "Operands": ["ebp"] }]
F7D6;[{ "Type": "Not", "Operands": ["esi"] }]
F7D7;[{ "Type": "Not", "Operands": ["edi"] }]
# NOT 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 "NOT byte ptr [eax]" would be F610 (with Mod=00, R/M=0 for EAX)
# F61425;[{ "Type": "Not", "Operands": ["byte ptr [eax]"] }]
F610;[{ "Type": "Not", "Operands": ["byte ptr [eax]"] }]
# The correct encoding for "NOT dword ptr [eax]" would be F710 (with Mod=00, R/M=0 for EAX)
# F71425;[{ "Type": "Not", "Operands": ["dword ptr [eax]"] }]
F710;[{ "Type": "Not", "Operands": ["dword ptr [eax]"] }]
# The correct encoding for "NOT dword ptr [eax+0x10]" would be F75010 (with Mod=01, R/M=0 for EAX, disp8=0x10)
# F7142510000000;[{ "Type": "Not", "Operands": ["dword ptr [eax+0x10]"] }]
F75010;[{ "Type": "Not", "Operands": ["dword ptr [eax+0x10]"] }]