# ADD instruction tests # Format: RawBytes;Instructions RawBytes;Instructions # ADD r/m8, imm8 (opcode 80 /0) 80C042;[{ "Type": "Add", "Operands": ["al", "0x42"] }] 80C342;[{ "Type": "Add", "Operands": ["bl", "0x42"] }] 80C142;[{ "Type": "Add", "Operands": ["cl", "0x42"] }] 80C242;[{ "Type": "Add", "Operands": ["dl", "0x42"] }] # ADD AL, imm8 (opcode 04) 0442;[{ "Type": "Add", "Operands": ["al", "0x42"] }] # ADD r/m32, imm32 (opcode 81 /0) 81C078563412;[{ "Type": "Add", "Operands": ["eax", "0x12345678"] }] 81C378563412;[{ "Type": "Add", "Operands": ["ebx", "0x12345678"] }] 81C178563412;[{ "Type": "Add", "Operands": ["ecx", "0x12345678"] }] 81C278563412;[{ "Type": "Add", "Operands": ["edx", "0x12345678"] }] # ADD EAX, imm32 (opcode 05) 0578563412;[{ "Type": "Add", "Operands": ["eax", "0x12345678"] }] # ADD r/m32, imm8 (opcode 83 /0) with sign extension 83C042;[{ "Type": "Add", "Operands": ["eax", "0x42"] }] 83C342;[{ "Type": "Add", "Operands": ["ebx", "0x42"] }] 83C142;[{ "Type": "Add", "Operands": ["ecx", "0x42"] }] 83C242;[{ "Type": "Add", "Operands": ["edx", "0x42"] }] 83C0FF;[{ "Type": "Add", "Operands": ["eax", "0xFFFFFFFF"] }] 83C3FF;[{ "Type": "Add", "Operands": ["ebx", "0xFFFFFFFF"] }] # ADD r/m8, r8 (opcode 00) 00C3;[{ "Type": "Add", "Operands": ["bl", "al"] }] 00D9;[{ "Type": "Add", "Operands": ["cl", "bl"] }] 00E2;[{ "Type": "Add", "Operands": ["dl", "ah"] }] # ADD r8, r/m8 (opcode 02) 02C3;[{ "Type": "Add", "Operands": ["al", "bl"] }] 02D9;[{ "Type": "Add", "Operands": ["bl", "cl"] }] 02E2;[{ "Type": "Add", "Operands": ["ah", "dl"] }] # ADD r/m32, r32 (opcode 01) 01D8;[{ "Type": "Add", "Operands": ["eax", "ebx"] }] 01CA;[{ "Type": "Add", "Operands": ["edx", "ecx"] }] 01E5;[{ "Type": "Add", "Operands": ["ebp", "esp"] }] 014B10;[{ "Type": "Add", "Operands": ["dword ptr [ebx+0x10]", "ecx"] }] # ADD r32, r/m32 (opcode 03) 03D8;[{ "Type": "Add", "Operands": ["ebx", "eax"] }] 03CA;[{ "Type": "Add", "Operands": ["ecx", "edx"] }] 03E5;[{ "Type": "Add", "Operands": ["esp", "ebp"] }] 034B10;[{ "Type": "Add", "Operands": ["ecx", "dword ptr [ebx+0x10]"] }] # ADD with memory operands 8004251000000042;[{ "Type": "Add", "Operands": ["byte ptr [0x10]", "0x42"] }] 8104251000000078563412;[{ "Type": "Add", "Operands": ["dword ptr [0x10]", "0x12345678"] }] 8304251000000042;[{ "Type": "Add", "Operands": ["dword ptr [0x10]", "0x42"] }] 0004251000000000;[{ "Type": "Add", "Operands": ["byte ptr [0x10]", "al"] }] 0204251000000000;[{ "Type": "Add", "Operands": ["al", "byte ptr [0x10]"] }] 0104251000000000;[{ "Type": "Add", "Operands": ["dword ptr [0x10]", "eax"] }] 0304251000000000;[{ "Type": "Add", "Operands": ["eax", "dword ptr [0x10]"] }]