mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-19 03:41:18 +03:00
Enhanced test coverage for CMP, BIT and CALL instructions
This commit is contained in:
parent
d6903f2e5b
commit
6169d68967
@ -6,54 +6,82 @@ RawBytes;Instructions
|
|||||||
0FA3C1;[{ "Type": "Bt", "Operands": ["ecx", "eax"] }]
|
0FA3C1;[{ "Type": "Bt", "Operands": ["ecx", "eax"] }]
|
||||||
0FA3D9;[{ "Type": "Bt", "Operands": ["ecx", "ebx"] }]
|
0FA3D9;[{ "Type": "Bt", "Operands": ["ecx", "ebx"] }]
|
||||||
0FA3CA;[{ "Type": "Bt", "Operands": ["edx", "ecx"] }]
|
0FA3CA;[{ "Type": "Bt", "Operands": ["edx", "ecx"] }]
|
||||||
|
0FA3E2;[{ "Type": "Bt", "Operands": ["edx", "esp"] }]
|
||||||
|
0FA3F6;[{ "Type": "Bt", "Operands": ["esi", "esi"] }]
|
||||||
0FA30425;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "eax"] }]
|
0FA30425;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "eax"] }]
|
||||||
0FA30C25;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "ecx"] }]
|
0FA30C25;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "ecx"] }]
|
||||||
0FA31425;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "edx"] }]
|
0FA31425;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "edx"] }]
|
||||||
0FBA2005;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "0x05"] }]
|
0FBA2005;[{ "Type": "Bt", "Operands": ["dword ptr [eax]", "0x05"] }]
|
||||||
0FBA2505;[{ "Type": "Bt", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
0FBA2505;[{ "Type": "Bt", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
||||||
|
0FBA2305;[{ "Type": "Bt", "Operands": ["dword ptr [ebx]", "0x05"] }]
|
||||||
|
0FBA2105;[{ "Type": "Bt", "Operands": ["dword ptr [ecx]", "0x05"] }]
|
||||||
|
0FBA2205;[{ "Type": "Bt", "Operands": ["dword ptr [edx]", "0x05"] }]
|
||||||
|
|
||||||
# BTS - Bit Test and Set
|
# BTS - Bit Test and Set
|
||||||
0FABC1;[{ "Type": "Bts", "Operands": ["ecx", "eax"] }]
|
0FABC1;[{ "Type": "Bts", "Operands": ["ecx", "eax"] }]
|
||||||
0FABD9;[{ "Type": "Bts", "Operands": ["ecx", "ebx"] }]
|
0FABD9;[{ "Type": "Bts", "Operands": ["ecx", "ebx"] }]
|
||||||
0FABCA;[{ "Type": "Bts", "Operands": ["edx", "ecx"] }]
|
0FABCA;[{ "Type": "Bts", "Operands": ["edx", "ecx"] }]
|
||||||
|
0FABE2;[{ "Type": "Bts", "Operands": ["edx", "esp"] }]
|
||||||
|
0FABF6;[{ "Type": "Bts", "Operands": ["esi", "esi"] }]
|
||||||
0FAB0425;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "eax"] }]
|
0FAB0425;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "eax"] }]
|
||||||
0FAB0C25;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "ecx"] }]
|
0FAB0C25;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "ecx"] }]
|
||||||
0FAB1425;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "edx"] }]
|
0FAB1425;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "edx"] }]
|
||||||
0FBA2805;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "0x05"] }]
|
0FBA2805;[{ "Type": "Bts", "Operands": ["dword ptr [eax]", "0x05"] }]
|
||||||
0FBA2D05;[{ "Type": "Bts", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
0FBA2D05;[{ "Type": "Bts", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
||||||
|
0FBA2B05;[{ "Type": "Bts", "Operands": ["dword ptr [ebx]", "0x05"] }]
|
||||||
|
0FBA2905;[{ "Type": "Bts", "Operands": ["dword ptr [ecx]", "0x05"] }]
|
||||||
|
0FBA2A05;[{ "Type": "Bts", "Operands": ["dword ptr [edx]", "0x05"] }]
|
||||||
|
|
||||||
# BTR - Bit Test and Reset
|
# BTR - Bit Test and Reset
|
||||||
0FB3C1;[{ "Type": "Btr", "Operands": ["ecx", "eax"] }]
|
0FB3C1;[{ "Type": "Btr", "Operands": ["ecx", "eax"] }]
|
||||||
0FB3D9;[{ "Type": "Btr", "Operands": ["ecx", "ebx"] }]
|
0FB3D9;[{ "Type": "Btr", "Operands": ["ecx", "ebx"] }]
|
||||||
0FB3CA;[{ "Type": "Btr", "Operands": ["edx", "ecx"] }]
|
0FB3CA;[{ "Type": "Btr", "Operands": ["edx", "ecx"] }]
|
||||||
|
0FB3E2;[{ "Type": "Btr", "Operands": ["edx", "esp"] }]
|
||||||
|
0FB3F6;[{ "Type": "Btr", "Operands": ["esi", "esi"] }]
|
||||||
0FB30425;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "eax"] }]
|
0FB30425;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "eax"] }]
|
||||||
0FB30C25;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "ecx"] }]
|
0FB30C25;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "ecx"] }]
|
||||||
0FB31425;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "edx"] }]
|
0FB31425;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "edx"] }]
|
||||||
0FBA3005;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "0x05"] }]
|
0FBA3005;[{ "Type": "Btr", "Operands": ["dword ptr [eax]", "0x05"] }]
|
||||||
0FBA3505;[{ "Type": "Btr", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
0FBA3505;[{ "Type": "Btr", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
||||||
|
0FBA3305;[{ "Type": "Btr", "Operands": ["dword ptr [ebx]", "0x05"] }]
|
||||||
|
0FBA3105;[{ "Type": "Btr", "Operands": ["dword ptr [ecx]", "0x05"] }]
|
||||||
|
0FBA3205;[{ "Type": "Btr", "Operands": ["dword ptr [edx]", "0x05"] }]
|
||||||
|
|
||||||
# BTC - Bit Test and Complement
|
# BTC - Bit Test and Complement
|
||||||
0FBBC1;[{ "Type": "Btc", "Operands": ["ecx", "eax"] }]
|
0FBBC1;[{ "Type": "Btc", "Operands": ["ecx", "eax"] }]
|
||||||
0FBBD9;[{ "Type": "Btc", "Operands": ["ecx", "ebx"] }]
|
0FBBD9;[{ "Type": "Btc", "Operands": ["ecx", "ebx"] }]
|
||||||
0FBBCA;[{ "Type": "Btc", "Operands": ["edx", "ecx"] }]
|
0FBBCA;[{ "Type": "Btc", "Operands": ["edx", "ecx"] }]
|
||||||
|
0FBBE2;[{ "Type": "Btc", "Operands": ["edx", "esp"] }]
|
||||||
|
0FBBF6;[{ "Type": "Btc", "Operands": ["esi", "esi"] }]
|
||||||
0FBB0425;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "eax"] }]
|
0FBB0425;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "eax"] }]
|
||||||
0FBB0C25;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "ecx"] }]
|
0FBB0C25;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "ecx"] }]
|
||||||
0FBB1425;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "edx"] }]
|
0FBB1425;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "edx"] }]
|
||||||
0FBA3805;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "0x05"] }]
|
0FBA3805;[{ "Type": "Btc", "Operands": ["dword ptr [eax]", "0x05"] }]
|
||||||
0FBA3D05;[{ "Type": "Btc", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
0FBA3D05;[{ "Type": "Btc", "Operands": ["dword ptr [ebp]", "0x05"] }]
|
||||||
|
0FBA3B05;[{ "Type": "Btc", "Operands": ["dword ptr [ebx]", "0x05"] }]
|
||||||
|
0FBA3905;[{ "Type": "Btc", "Operands": ["dword ptr [ecx]", "0x05"] }]
|
||||||
|
0FBA3A05;[{ "Type": "Btc", "Operands": ["dword ptr [edx]", "0x05"] }]
|
||||||
|
|
||||||
# BSF - Bit Scan Forward
|
# BSF - Bit Scan Forward
|
||||||
0FBCC1;[{ "Type": "Bsf", "Operands": ["eax", "ecx"] }]
|
0FBCC1;[{ "Type": "Bsf", "Operands": ["eax", "ecx"] }]
|
||||||
0FBCD9;[{ "Type": "Bsf", "Operands": ["ebx", "ecx"] }]
|
0FBCD9;[{ "Type": "Bsf", "Operands": ["ebx", "ecx"] }]
|
||||||
0FBCCA;[{ "Type": "Bsf", "Operands": ["ecx", "edx"] }]
|
0FBCCA;[{ "Type": "Bsf", "Operands": ["ecx", "edx"] }]
|
||||||
|
0FBCE2;[{ "Type": "Bsf", "Operands": ["esp", "edx"] }]
|
||||||
|
0FBCF6;[{ "Type": "Bsf", "Operands": ["esi", "esi"] }]
|
||||||
0FBC0425;[{ "Type": "Bsf", "Operands": ["eax", "dword ptr [eax]"] }]
|
0FBC0425;[{ "Type": "Bsf", "Operands": ["eax", "dword ptr [eax]"] }]
|
||||||
0FBC0C25;[{ "Type": "Bsf", "Operands": ["ecx", "dword ptr [eax]"] }]
|
0FBC0C25;[{ "Type": "Bsf", "Operands": ["ecx", "dword ptr [eax]"] }]
|
||||||
0FBC1425;[{ "Type": "Bsf", "Operands": ["edx", "dword ptr [eax]"] }]
|
0FBC1425;[{ "Type": "Bsf", "Operands": ["edx", "dword ptr [eax]"] }]
|
||||||
|
0FBC1C25;[{ "Type": "Bsf", "Operands": ["ebx", "dword ptr [eax]"] }]
|
||||||
|
0FBC2425;[{ "Type": "Bsf", "Operands": ["esp", "dword ptr [eax]"] }]
|
||||||
|
|
||||||
# BSR - Bit Scan Reverse
|
# BSR - Bit Scan Reverse
|
||||||
0FBDC1;[{ "Type": "Bsr", "Operands": ["eax", "ecx"] }]
|
0FBDC1;[{ "Type": "Bsr", "Operands": ["eax", "ecx"] }]
|
||||||
0FBDD9;[{ "Type": "Bsr", "Operands": ["ebx", "ecx"] }]
|
0FBDD9;[{ "Type": "Bsr", "Operands": ["ebx", "ecx"] }]
|
||||||
0FBDCA;[{ "Type": "Bsr", "Operands": ["ecx", "edx"] }]
|
0FBDCA;[{ "Type": "Bsr", "Operands": ["ecx", "edx"] }]
|
||||||
|
0FBDE2;[{ "Type": "Bsr", "Operands": ["esp", "edx"] }]
|
||||||
|
0FBDF6;[{ "Type": "Bsr", "Operands": ["esi", "esi"] }]
|
||||||
0FBD0425;[{ "Type": "Bsr", "Operands": ["eax", "dword ptr [eax]"] }]
|
0FBD0425;[{ "Type": "Bsr", "Operands": ["eax", "dword ptr [eax]"] }]
|
||||||
0FBD0C25;[{ "Type": "Bsr", "Operands": ["ecx", "dword ptr [eax]"] }]
|
0FBD0C25;[{ "Type": "Bsr", "Operands": ["ecx", "dword ptr [eax]"] }]
|
||||||
0FBD1425;[{ "Type": "Bsr", "Operands": ["edx", "dword ptr [eax]"] }]
|
0FBD1425;[{ "Type": "Bsr", "Operands": ["edx", "dword ptr [eax]"] }]
|
||||||
|
0FBD1C25;[{ "Type": "Bsr", "Operands": ["ebx", "dword ptr [eax]"] }]
|
||||||
|
0FBD2425;[{ "Type": "Bsr", "Operands": ["esp", "dword ptr [eax]"] }]
|
||||||
|
Can't render this file because it contains an unexpected character in line 6 and column 11.
|
@ -5,6 +5,8 @@ RawBytes;Instructions
|
|||||||
# CALL rel32 (opcode E8)
|
# CALL rel32 (opcode E8)
|
||||||
E810000000;[{ "Type": "Call", "Operands": ["0x00000015"] }]
|
E810000000;[{ "Type": "Call", "Operands": ["0x00000015"] }]
|
||||||
E8FEFFFFFF;[{ "Type": "Call", "Operands": ["0x00000003"] }]
|
E8FEFFFFFF;[{ "Type": "Call", "Operands": ["0x00000003"] }]
|
||||||
|
E800000000;[{ "Type": "Call", "Operands": ["0x00000005"] }]
|
||||||
|
E8FFFFFFFF;[{ "Type": "Call", "Operands": ["0x00000004"] }]
|
||||||
|
|
||||||
# CALL r/m32 (opcode FF /2) with register operands
|
# CALL r/m32 (opcode FF /2) with register operands
|
||||||
FFD0;[{ "Type": "Call", "Operands": ["eax"] }]
|
FFD0;[{ "Type": "Call", "Operands": ["eax"] }]
|
||||||
@ -55,9 +57,14 @@ FF1C;[{ "Type": "Call", "Operands": ["fword ptr [esp]"] }]
|
|||||||
FF1D;[{ "Type": "Call", "Operands": ["fword ptr [ebp]"] }]
|
FF1D;[{ "Type": "Call", "Operands": ["fword ptr [ebp]"] }]
|
||||||
FF1E;[{ "Type": "Call", "Operands": ["fword ptr [esi]"] }]
|
FF1E;[{ "Type": "Call", "Operands": ["fword ptr [esi]"] }]
|
||||||
FF1F;[{ "Type": "Call", "Operands": ["fword ptr [edi]"] }]
|
FF1F;[{ "Type": "Call", "Operands": ["fword ptr [edi]"] }]
|
||||||
|
FF18;[{ "Type": "Call", "Operands": ["fword ptr [eax]"] }]
|
||||||
|
FF19;[{ "Type": "Call", "Operands": ["fword ptr [ecx]"] }]
|
||||||
|
FF1A;[{ "Type": "Call", "Operands": ["fword ptr [edx]"] }]
|
||||||
|
FF1B;[{ "Type": "Call", "Operands": ["fword ptr [ebx]"] }]
|
||||||
|
|
||||||
# CALL m32 (opcode FF /2) with direct memory operand
|
# CALL m32 (opcode FF /2) with direct memory operand
|
||||||
FF1578563412;[{ "Type": "Call", "Operands": ["dword ptr [0x12345678]"] }]
|
FF1578563412;[{ "Type": "Call", "Operands": ["dword ptr [0x12345678]"] }]
|
||||||
|
FF1534127856;[{ "Type": "Call", "Operands": ["dword ptr [0x56781234]"] }]
|
||||||
|
|
||||||
# CALL m32 (opcode FF /2) with segment override prefixes
|
# CALL m32 (opcode FF /2) with segment override prefixes
|
||||||
26FF5510;[{ "Type": "Call", "Operands": ["dword ptr es:[ebp+0x10]"] }]
|
26FF5510;[{ "Type": "Call", "Operands": ["dword ptr es:[ebp+0x10]"] }]
|
||||||
|
Can't render this file because it contains an unexpected character in line 6 and column 15.
|
@ -4,22 +4,56 @@ RawBytes;Instructions
|
|||||||
|
|
||||||
# CMP r/m8, imm8 (opcode 80 /7)
|
# CMP r/m8, imm8 (opcode 80 /7)
|
||||||
80F842;[{ "Type": "Cmp", "Operands": ["al", "0x42"] }]
|
80F842;[{ "Type": "Cmp", "Operands": ["al", "0x42"] }]
|
||||||
|
80FB42;[{ "Type": "Cmp", "Operands": ["bl", "0x42"] }]
|
||||||
|
80F942;[{ "Type": "Cmp", "Operands": ["cl", "0x42"] }]
|
||||||
|
80FA42;[{ "Type": "Cmp", "Operands": ["dl", "0x42"] }]
|
||||||
|
|
||||||
|
# CMP AL, imm8 (opcode 3C)
|
||||||
|
3C42;[{ "Type": "Cmp", "Operands": ["al", "0x42"] }]
|
||||||
|
|
||||||
# CMP r/m32, imm32 (opcode 81 /7)
|
# CMP r/m32, imm32 (opcode 81 /7)
|
||||||
81F878563412;[{ "Type": "Cmp", "Operands": ["eax", "0x12345678"] }]
|
81F878563412;[{ "Type": "Cmp", "Operands": ["eax", "0x12345678"] }]
|
||||||
|
81FB78563412;[{ "Type": "Cmp", "Operands": ["ebx", "0x12345678"] }]
|
||||||
|
81F978563412;[{ "Type": "Cmp", "Operands": ["ecx", "0x12345678"] }]
|
||||||
|
81FA78563412;[{ "Type": "Cmp", "Operands": ["edx", "0x12345678"] }]
|
||||||
|
|
||||||
|
# CMP EAX, imm32 (opcode 3D)
|
||||||
|
3D78563412;[{ "Type": "Cmp", "Operands": ["eax", "0x12345678"] }]
|
||||||
|
|
||||||
# CMP r/m32, imm8 (opcode 83 /7)
|
# CMP r/m32, imm8 (opcode 83 /7)
|
||||||
83F842;[{ "Type": "Cmp", "Operands": ["eax", "0x42"] }]
|
83F842;[{ "Type": "Cmp", "Operands": ["eax", "0x42"] }]
|
||||||
|
83FB42;[{ "Type": "Cmp", "Operands": ["ebx", "0x42"] }]
|
||||||
|
83F942;[{ "Type": "Cmp", "Operands": ["ecx", "0x42"] }]
|
||||||
|
83FA42;[{ "Type": "Cmp", "Operands": ["edx", "0x42"] }]
|
||||||
|
|
||||||
# CMP with memory operands
|
# CMP r/m8, r8 (opcode 38)
|
||||||
813C2578563412;[{ "Type": "Cmp", "Operands": ["dword ptr [eax]", "0x12345678"] }]
|
38C3;[{ "Type": "Cmp", "Operands": ["bl", "al"] }]
|
||||||
|
38D9;[{ "Type": "Cmp", "Operands": ["cl", "bl"] }]
|
||||||
|
38E2;[{ "Type": "Cmp", "Operands": ["dl", "ah"] }]
|
||||||
|
|
||||||
|
# CMP r8, r/m8 (opcode 3A)
|
||||||
|
3AC3;[{ "Type": "Cmp", "Operands": ["al", "bl"] }]
|
||||||
|
3AD9;[{ "Type": "Cmp", "Operands": ["bl", "cl"] }]
|
||||||
|
3AE2;[{ "Type": "Cmp", "Operands": ["ah", "dl"] }]
|
||||||
|
|
||||||
# CMP r/m32, r32 (opcode 39)
|
# CMP r/m32, r32 (opcode 39)
|
||||||
39D8;[{ "Type": "Cmp", "Operands": ["eax", "ebx"] }]
|
39D8;[{ "Type": "Cmp", "Operands": ["eax", "ebx"] }]
|
||||||
39CA;[{ "Type": "Cmp", "Operands": ["edx", "ecx"] }]
|
39CA;[{ "Type": "Cmp", "Operands": ["edx", "ecx"] }]
|
||||||
|
39E5;[{ "Type": "Cmp", "Operands": ["ebp", "esp"] }]
|
||||||
394B10;[{ "Type": "Cmp", "Operands": ["dword ptr [ebx+0x10]", "ecx"] }]
|
394B10;[{ "Type": "Cmp", "Operands": ["dword ptr [ebx+0x10]", "ecx"] }]
|
||||||
|
|
||||||
# CMP r32, r/m32 (opcode 3B)
|
# CMP r32, r/m32 (opcode 3B)
|
||||||
3BD8;[{ "Type": "Cmp", "Operands": ["ebx", "eax"] }]
|
3BD8;[{ "Type": "Cmp", "Operands": ["ebx", "eax"] }]
|
||||||
3BCA;[{ "Type": "Cmp", "Operands": ["ecx", "edx"] }]
|
3BCA;[{ "Type": "Cmp", "Operands": ["ecx", "edx"] }]
|
||||||
|
3BE5;[{ "Type": "Cmp", "Operands": ["esp", "ebp"] }]
|
||||||
3B4B10;[{ "Type": "Cmp", "Operands": ["ecx", "dword ptr [ebx+0x10]"] }]
|
3B4B10;[{ "Type": "Cmp", "Operands": ["ecx", "dword ptr [ebx+0x10]"] }]
|
||||||
|
|
||||||
|
# CMP with memory operands
|
||||||
|
8004251000000042;[{ "Type": "Cmp", "Operands": ["byte ptr [0x10]", "0x42"] }]
|
||||||
|
813C2578563412;[{ "Type": "Cmp", "Operands": ["dword ptr [eax]", "0x12345678"] }]
|
||||||
|
8104251000000078563412;[{ "Type": "Cmp", "Operands": ["dword ptr [0x10]", "0x12345678"] }]
|
||||||
|
8304251000000042;[{ "Type": "Cmp", "Operands": ["dword ptr [0x10]", "0x42"] }]
|
||||||
|
3804251000000000;[{ "Type": "Cmp", "Operands": ["byte ptr [0x10]", "al"] }]
|
||||||
|
3A04251000000000;[{ "Type": "Cmp", "Operands": ["al", "byte ptr [0x10]"] }]
|
||||||
|
3904251000000000;[{ "Type": "Cmp", "Operands": ["dword ptr [0x10]", "eax"] }]
|
||||||
|
3B04251000000000;[{ "Type": "Cmp", "Operands": ["eax", "dword ptr [0x10]"] }]
|
||||||
|
Can't render this file because it contains an unexpected character in line 6 and column 11.
|
Loading…
x
Reference in New Issue
Block a user