- for (i = 0; i < q->length; i++) {
- fprintf(stream, "%02x ", data[i]);
- }
- for (; i < 6; i++) {
- fprintf(stream, " ");
- }
- }
- fprintf(stream, "%s\t",q->name);
- /* Now print out the args */
- {
- op_enum_type *args = q->args.nib;
- int hadone = 0;
- while (*args != E) {
- if (hadone)
- fprintf(stream, ",");
- switch ((int)(*args) & ~((int)B30|(int)B31)) {
- case IMM16:
- case IMM8:
- case IMM3:
- fprintf(stream, "#H'%x", (unsigned)abs); break;
- case RD8:
- fprintf(stream, "%s", regnames[rd]); break;
- case RS8:
- fprintf(stream, "%s",regnames[rs]); break;
- case RD16:
- fprintf(stream, "r%d", rd& 0x7); break;
- case RS16:
- fprintf(stream, "r%d", rs & 0x7); break;
- case RSINC:
- fprintf(stream, "@r%d+", rs & 0x7); break;
- case RDDEC:
- fprintf(stream, "@-r%d", rd & 0x7); break;
- case RDIND:
- fprintf(stream, "@r%d", rd & 0x7); break;
- case RSIND:
- fprintf(stream, "@r%d",rs & 0x7); break;
- case ABS8SRC:
- case ABS16SRC:
- case ABS16DST:
- case ABS8DST:
- fprintf(stream, "@H'%x", (unsigned)abs); break;
- case DISP8:
- fprintf(stream, ".%s%d (%x)",(char)abs>0 ? "+" :"", (char)abs,
- addr + (char)abs);
- break;
- case DISPSRC:
- case DISPDST:
- fprintf(stream, "@(%d,r%d)", abs, rdisp & 0x7); break;
- case CCR:
- fprintf(stream, "ccr"); break;
- case KBIT:
- fprintf(stream, "#%d",abs); break;
- default:
- abort();