BYTE
#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377))
#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377))
#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1))
%token NET MASK PORT LESS GREATER PROTO PROTOCHAIN BYTE
| BYTE NUM byteop NUM { $$ = gen_byteop($3, $2, $4); }
BYTE buf[1024];
db_print_address(seg, BYTE, &address);
if (i_size == BYTE) {
size = BYTE;
db_print_address(seg, BYTE, &address);
/*b0*/ { "cmpxchg",1, BYTE, op2(R, E), 0 },
/*c0*/ { "xadd", 1, BYTE, op2(R, E), 0 },
{ "inc", 1, BYTE, op1(E), 0 },
{ "dec", 1, BYTE, op1(E), 0 },
/*00*/ { "add", 1, BYTE, op2(R, E), 0 },
/*02*/ { "add", 1, BYTE, op2(E, R), 0 },
/*04*/ { "add", 0, BYTE, op2(I, A), 0 },
/*08*/ { "or", 1, BYTE, op2(R, E), 0 },
/*0a*/ { "or", 1, BYTE, op2(E, R), 0 },
/*0c*/ { "or", 0, BYTE, op2(I, A), 0 },
/*10*/ { "adc", 1, BYTE, op2(R, E), 0 },
/*12*/ { "adc", 1, BYTE, op2(E, R), 0 },
/*14*/ { "adc", 0, BYTE, op2(I, A), 0 },
/*18*/ { "sbb", 1, BYTE, op2(R, E), 0 },
/*1a*/ { "sbb", 1, BYTE, op2(E, R), 0 },
/*1c*/ { "sbb", 0, BYTE, op2(I, A), 0 },
/*20*/ { "and", 1, BYTE, op2(R, E), 0 },
/*22*/ { "and", 1, BYTE, op2(E, R), 0 },
/*24*/ { "and", 0, BYTE, op2(I, A), 0 },
/*28*/ { "sub", 1, BYTE, op2(R, E), 0 },
/*2a*/ { "sub", 1, BYTE, op2(E, R), 0 },
/*2c*/ { "sub", 0, BYTE, op2(I, A), 0 },
/*30*/ { "xor", 1, BYTE, op2(R, E), 0 },
/*32*/ { "xor", 1, BYTE, op2(E, R), 0 },
/*34*/ { "xor", 0, BYTE, op2(I, A), 0 },
/*38*/ { "cmp", 1, BYTE, op2(R, E), 0 },
/*3a*/ { "cmp", 1, BYTE, op2(E, R), 0 },
/*3c*/ { "cmp", 0, BYTE, op2(I, A), 0 },
/*6c*/ { "ins", 0, BYTE, op2(DX, DI), 0 },
/*6e*/ { "outs", 0, BYTE, op2(SI, DX), 0 },
/*80*/ { NULL, 1, BYTE, op2(I, E), db_Grp1 },
/*82*/ { NULL, 1, BYTE, op2(I, E), db_Grp1 },
/*84*/ { "test", 1, BYTE, op2(R, E), 0 },
/*86*/ { "xchg", 1, BYTE, op2(R, E), 0 },
/*88*/ { "mov", 1, BYTE, op2(R, E), 0 },
/*8a*/ { "mov", 1, BYTE, op2(E, R), 0 },
/*a0*/ { "mov", 0, BYTE, op2(O, A), 0 },
/*a2*/ { "mov", 0, BYTE, op2(A, O), 0 },
/*a4*/ { "movs", 0, BYTE, op2(SI,DI), 0 },
/*a6*/ { "cmps", 0, BYTE, op2(SI,DI), 0 },
/*a8*/ { "test", 0, BYTE, op2(I, A), 0 },
/*aa*/ { "stos", 0, BYTE, op1(DI), 0 },
/*ac*/ { "lods", 0, BYTE, op1(SI), 0 },
/*ae*/ { "scas", 0, BYTE, op1(SI), 0 },
/*b0*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b1*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b2*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b3*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b4*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b5*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b6*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b7*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*c0*/ { NULL, 1, BYTE, op2(Ib, E), db_Grp2 },
/*c6*/ { "mov", 1, BYTE, op2(I, E), 0 },
/*d0*/ { NULL, 1, BYTE, op2(o1, E), db_Grp2 },
/*d2*/ { NULL, 1, BYTE, op2(CL, E), db_Grp2 },
/*d7*/ { "xlat", 0, BYTE, op1(BX), 0 },
/*e4*/ { "in", 0, BYTE, op2(Ib, A), 0 },
/*e6*/ { "out", 0, BYTE, op2(A, Ib), 0 },
/*ec*/ { "in", 0, BYTE, op2(DX, A), 0 },
/*ee*/ { "out", 0, BYTE, op2(A, DX), 0 },
/*f6*/ { "", 1, BYTE, 0, db_Grp3 },
db_print_address(seg, BYTE, &address);
if (i_size == BYTE) {
size = BYTE;
db_print_address(seg, BYTE, &address);
/*b0*/ { "cmpxchg",1, BYTE, op2(R, E), 0 },
/*c0*/ { "xadd", 1, BYTE, op2(R, E), 0 },
{ "inc", 1, BYTE, op1(E), 0 },
{ "dec", 1, BYTE, op1(E), 0 },
/*00*/ { "add", 1, BYTE, op2(R, E), 0 },
/*02*/ { "add", 1, BYTE, op2(E, R), 0 },
/*04*/ { "add", 0, BYTE, op2(I, A), 0 },
/*08*/ { "or", 1, BYTE, op2(R, E), 0 },
/*0a*/ { "or", 1, BYTE, op2(E, R), 0 },
/*0c*/ { "or", 0, BYTE, op2(I, A), 0 },
/*10*/ { "adc", 1, BYTE, op2(R, E), 0 },
/*12*/ { "adc", 1, BYTE, op2(E, R), 0 },
/*14*/ { "adc", 0, BYTE, op2(I, A), 0 },
/*18*/ { "sbb", 1, BYTE, op2(R, E), 0 },
/*1a*/ { "sbb", 1, BYTE, op2(E, R), 0 },
/*1c*/ { "sbb", 0, BYTE, op2(I, A), 0 },
/*20*/ { "and", 1, BYTE, op2(R, E), 0 },
/*22*/ { "and", 1, BYTE, op2(E, R), 0 },
/*24*/ { "and", 0, BYTE, op2(I, A), 0 },
/*28*/ { "sub", 1, BYTE, op2(R, E), 0 },
/*2a*/ { "sub", 1, BYTE, op2(E, R), 0 },
/*2c*/ { "sub", 0, BYTE, op2(I, A), 0 },
/*30*/ { "xor", 1, BYTE, op2(R, E), 0 },
/*32*/ { "xor", 1, BYTE, op2(E, R), 0 },
/*34*/ { "xor", 0, BYTE, op2(I, A), 0 },
/*38*/ { "cmp", 1, BYTE, op2(R, E), 0 },
/*3a*/ { "cmp", 1, BYTE, op2(E, R), 0 },
/*3c*/ { "cmp", 0, BYTE, op2(I, A), 0 },
/*6c*/ { "ins", 0, BYTE, op2(DX, DI), 0 },
/*6e*/ { "outs", 0, BYTE, op2(SI, DX), 0 },
/*80*/ { NULL, 1, BYTE, op2(I, E), db_Grp1 },
/*82*/ { NULL, 1, BYTE, op2(I, E), db_Grp1 },
/*84*/ { "test", 1, BYTE, op2(R, E), 0 },
/*86*/ { "xchg", 1, BYTE, op2(R, E), 0 },
/*88*/ { "mov", 1, BYTE, op2(R, E), 0 },
/*8a*/ { "mov", 1, BYTE, op2(E, R), 0 },
/*a0*/ { "mov", 0, BYTE, op2(O, A), 0 },
/*a2*/ { "mov", 0, BYTE, op2(A, O), 0 },
/*a4*/ { "movs", 0, BYTE, op2(SI,DI), 0 },
/*a6*/ { "cmps", 0, BYTE, op2(SI,DI), 0 },
/*a8*/ { "test", 0, BYTE, op2(I, A), 0 },
/*aa*/ { "stos", 0, BYTE, op1(DI), 0 },
/*ac*/ { "lods", 0, BYTE, op1(SI), 0 },
/*ae*/ { "scas", 0, BYTE, op1(SI), 0 },
/*b0*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b1*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b2*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b3*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b4*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b5*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b6*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*b7*/ { "mov", 0, BYTE, op2(I, Ri), 0 },
/*c0*/ { NULL, 1, BYTE, op2(Ib, E), db_Grp2 },
/*c6*/ { "mov", 1, BYTE, op2(I, E), 0 },
/*d0*/ { NULL, 1, BYTE, op2(o1, E), db_Grp2 },
/*d2*/ { NULL, 1, BYTE, op2(CL, E), db_Grp2 },
/*d7*/ { "xlat", 0, BYTE, op1(BX), 0 },
/*e4*/ { "in", 0, BYTE, op2(Ib, A), 0 },
/*e6*/ { "out", 0, BYTE, op2(A, Ib), 0 },
/*ec*/ { "in", 0, BYTE, op2(DX, A), 0 },
/*ee*/ { "out", 0, BYTE, op2(A, DX), 0 },
/*f6*/ { "", 1, BYTE, 0, db_Grp3 },
BYTE buf[1024];