diff options
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/db_disasm.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/i386/i386/db_disasm.c b/i386/i386/db_disasm.c index 0032721..e15293b 100644 --- a/i386/i386/db_disasm.c +++ b/i386/i386/db_disasm.c @@ -94,6 +94,7 @@ boolean_t db_disasm_16 = FALSE; #define STI 33 /* FP stack */ #define X 34 /* extended FP op */ #define XA 35 /* for 'fstcw %ax' */ +#define Iba 36 /* byte immediate, don't print if 0xa */ struct inst { char * i_name; /* name */ @@ -749,8 +750,8 @@ struct inst db_inst_table[256] = { /*d1*/ { "", TRUE, LONG, op2(o1, E), (char *)db_Grp2 }, /*d2*/ { "", TRUE, BYTE, op2(CL, E), (char *)db_Grp2 }, /*d3*/ { "", TRUE, LONG, op2(CL, E), (char *)db_Grp2 }, -/*d4*/ { "aam", TRUE, NONE, 0, 0 }, -/*d5*/ { "aad", TRUE, NONE, 0, 0 }, +/*d4*/ { "aam", FALSE, NONE, op1(Iba), 0 }, +/*d5*/ { "aad", FALSE, NONE, op1(Iba), 0 }, /*d6*/ { "", FALSE, NONE, 0, 0 }, /*d7*/ { "xlat", FALSE, BYTE, op1(BX), 0 }, @@ -1333,6 +1334,12 @@ db_disasm( db_printf("$%#n", imm); break; + case Iba: + get_value_inc(imm, loc, 1, FALSE, task); + if (imm != 0x0a) + db_printf("$%#r", imm); + break; + case Ibs: get_value_inc(imm, loc, 1, TRUE, task); /* signed */ db_printf("$%#r", imm); |