0
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:
bird_egop 2025-04-15 22:32:37 +03:00
parent d6903f2e5b
commit 6169d68967
3 changed files with 71 additions and 2 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.