Пример #1
0
static void
lc3b_bc_insn_print(const void *contents, FILE *f, int indent_level)
{
    const lc3b_insn *insn = (const lc3b_insn *)contents;

    fprintf(f, "%*s_Instruction_\n", indent_level, "");
    fprintf(f, "%*sImmediate Value:", indent_level, "");
    if (!insn->imm.abs)
        fprintf(f, " (nil)\n");
    else {
        indent_level++;
        fprintf(f, "\n");
        yasm_value_print(&insn->imm, f, indent_level);
        fprintf(f, "%*sType=", indent_level, "");
        switch (insn->imm_type) {
            case LC3B_IMM_NONE:
                fprintf(f, "NONE-SHOULDN'T HAPPEN");
                break;
            case LC3B_IMM_4:
                fprintf(f, "4-bit");
                break;
            case LC3B_IMM_5:
                fprintf(f, "5-bit");
                break;
            case LC3B_IMM_6_WORD:
                fprintf(f, "6-bit, word-multiple");
                break;
            case LC3B_IMM_6_BYTE:
                fprintf(f, "6-bit, byte-multiple");
                break;
            case LC3B_IMM_8:
                fprintf(f, "8-bit, word-multiple");
                break;
            case LC3B_IMM_9:
                fprintf(f, "9-bit, signed, word-multiple");
                break;
            case LC3B_IMM_9_PC:
                fprintf(f, "9-bit, signed, word-multiple, PC-relative");
                break;
        }
        indent_level--;
    }
    /* FIXME
    fprintf(f, "\n%*sOrigin=", indent_level, "");
    if (insn->origin) {
        fprintf(f, "\n");
        yasm_symrec_print(insn->origin, f, indent_level+1);
    } else
        fprintf(f, "(nil)\n");
    */
    fprintf(f, "%*sOpcode: %04x\n", indent_level, "",
            (unsigned int)insn->opcode);
}
Пример #2
0
static void
lc3b_ea_print(const yasm_effaddr *ea, FILE *f, int indent_level)
{
    fprintf(f, "%*sDisp:\n", indent_level, "");
    yasm_value_print(&ea->disp, f, indent_level+1);
}