# Miscellaneous instruction tests # Format: RawBytes;Instructions RawBytes;Instructions # NOP - No Operation 90;[{ "Type": "Nop", "Operands": [] }] # INT - Call to Interrupt Procedure CD03;[{ "Type": "Int", "Operands": ["0x03"] }] CD10;[{ "Type": "Int", "Operands": ["0x10"] }] CD21;[{ "Type": "Int", "Operands": ["0x21"] }] CD80;[{ "Type": "Int", "Operands": ["0x80"] }] # INT3 - Breakpoint CC;[{ "Type": "Int3", "Operands": [] }] # INTO - Call to Interrupt Procedure if Overflow Flag is Set CE;[{ "Type": "Into", "Operands": [] }] # IRET/IRETD - Return from Interrupt CF;[{ "Type": "Iret", "Operands": [] }] # CPUID - CPU Identification 0FA2;[{ "Type": "Cpuid", "Operands": [] }] # RDTSC - Read Time-Stamp Counter 0F31;[{ "Type": "Rdtsc", "Operands": [] }] # HLT - Halt F4;[{ "Type": "Hlt", "Operands": [] }] # WAIT/FWAIT - Wait 9B;[{ "Type": "Wait", "Operands": [] }] # LOCK prefix F0;[{ "Type": "Lock", "Operands": [] }] # SPECIAL CASE: When Mod=00 and R/M=101 (EBP), this doesn't actually refer to [EBP]. # Instead, it's a special case that indicates a 32-bit displacement-only addressing mode. # The correct encoding for instructions with [ebp] would use Mod=01 and a zero displacement. # F0FE05;[{ "Type": "Inc", "Operands": ["byte ptr [ebp]"], "Prefix": "Lock" }] # F0FF05;[{ "Type": "Inc", "Operands": ["dword ptr [ebp]"], "Prefix": "Lock" }] # F0FE0D;[{ "Type": "Dec", "Operands": ["byte ptr [ebp]"], "Prefix": "Lock" }] # F0FF0D;[{ "Type": "Dec", "Operands": ["dword ptr [ebp]"], "Prefix": "Lock" }] # Adding the correct test cases: F0FE4500;[{ "Type": "Inc", "Operands": ["byte ptr [ebp+0x0]"], "Prefix": "Lock" }] F0FF4500;[{ "Type": "Inc", "Operands": ["dword ptr [ebp+0x0]"], "Prefix": "Lock" }] F0FE4D00;[{ "Type": "Dec", "Operands": ["byte ptr [ebp+0x0]"], "Prefix": "Lock" }] F0FF4D00;[{ "Type": "Dec", "Operands": ["dword ptr [ebp+0x0]"], "Prefix": "Lock" }] # IN - Input from Port E410;[{ "Type": "In", "Operands": ["al", "0x10"] }] E510;[{ "Type": "In", "Operands": ["eax", "0x10"] }] EC;[{ "Type": "In", "Operands": ["al", "dx"] }] ED;[{ "Type": "In", "Operands": ["eax", "dx"] }] # OUT - Output to Port E610;[{ "Type": "Out", "Operands": ["0x10", "al"] }] E710;[{ "Type": "Out", "Operands": ["0x10", "eax"] }] EE;[{ "Type": "Out", "Operands": ["dx", "al"] }] EF;[{ "Type": "Out", "Operands": ["dx", "eax"] }]