📄 gencode.c
字号:
{ "cpy", "[],y", "sub16", 2, 0xad, 3, 3, CHG_NZVC }, /* dbeq, dbne, ibeq, ibne, tbeq, tbne */ { "dbeq", 0, "dbcc8", 3, 0x04, 3, 3, CHG_NONE }, { "dec", "()->()", "dec8", 3, 0x73, 4, 4, CHG_NZV }, { "dec", "[]->[]", "dec8", 2, 0x63, 3, 3, CHG_NZV }, { "deca", "a->a", "dec8", 1, 0x43, 1, 1, CHG_NZV }, { "decb", "b->b", "dec8", 1, 0x53, 1, 1, CHG_NZV }, { "dex", "x->x", "dec16", 1, 0x09, 1, 1, CHG_Z }, { "dey", "y->y", "dec16", 1, 0x03, 1, 1, CHG_Z }, { "ediv", 0, 0, 1, 0x11, 11, 11, CHG_NZVC }, { "emul", 0, 0, 1, 0x13, 3, 3, CHG_NZC }, { "eora", "#,a->a", "eor8", 2, 0x88, 1, 1, CLR_V_CHG_NZ }, { "eora", "*,a->a", "eor8", 2, 0x98, 3, 3, CLR_V_CHG_NZ }, { "eora", "(),a->a", "eor8", 3, 0xb8, 3, 3, CLR_V_CHG_NZ }, { "eora", "[],a->a", "eor8", 2, 0xa8, 3, 3, CLR_V_CHG_NZ }, { "eorb", "#,b->b", "eor8", 2, 0xc8, 1, 1, CLR_V_CHG_NZ }, { "eorb", "*,b->b", "eor8", 2, 0xd8, 3, 3, CLR_V_CHG_NZ }, { "eorb", "(),b->b", "eor8", 3, 0xf8, 3, 3, CLR_V_CHG_NZ }, { "eorb", "[],b->b", "eor8", 2, 0xe8, 3, 3, CLR_V_CHG_NZ }, /* exg, sex, tfr */ { "exg", "#", "exg8", 2, 0xb7, 1, 1, CHG_NONE }, { "inc", "()->()", "inc8", 3, 0x72, 4, 4, CHG_NZV }, { "inc", "[]->[]", "inc8", 2, 0x62, 3, 3, CHG_NZV }, { "inca", "a->a", "inc8", 1, 0x42, 1, 1, CHG_NZV }, { "incb", "b->b", "inc8", 1, 0x52, 1, 1, CHG_NZV }, { "inx", "x->x", "inc16", 1, 0x08, 1, 1, CHG_Z }, { "iny", "y->y", "inc16", 1, 0x02, 1, 1, CHG_Z }, { "jmp", "&()", "bra", 3, 0x06, 3, 3, CHG_NONE }, { "jmp", "&[]", "bra", 2, 0x05, 3, 3, CHG_NONE }, { "jsr", "*", "jsr_12_16", 2, 0x17, 4, 4, CHG_NONE }, { "jsr", "&()", "jsr_12_16", 3, 0x16, 4, 4, CHG_NONE }, { "jsr", "&[]", "jsr_12_16", 2, 0x15, 4, 4, CHG_NONE }, { "ldaa", "#->a", "movtst8", 2, 0x86, 1, 1, CLR_V_CHG_NZ }, { "ldaa", "*->a", "movtst8", 2, 0x96, 3, 3, CLR_V_CHG_NZ }, { "ldaa", "()->a", "movtst8", 3, 0xb6, 3, 3, CLR_V_CHG_NZ }, { "ldaa", "[]->a", "movtst8", 2, 0xa6, 3, 3, CLR_V_CHG_NZ }, { "ldab", "#->b", "movtst8", 2, 0xc6, 1, 1, CLR_V_CHG_NZ }, { "ldab", "*->b", "movtst8", 2, 0xd6, 3, 3, CLR_V_CHG_NZ }, { "ldab", "()->b", "movtst8", 3, 0xf6, 3, 3, CLR_V_CHG_NZ }, { "ldab", "[]->b", "movtst8", 2, 0xe6, 3, 3, CLR_V_CHG_NZ }, { "ldd", "#->d", "movtst16", 3, 0xcc, 2, 2, CLR_V_CHG_NZ }, { "ldd", "*->d", "movtst16", 2, 0xdc, 3, 3, CLR_V_CHG_NZ }, { "ldd", "()->d", "movtst16", 3, 0xfc, 3, 3, CLR_V_CHG_NZ }, { "ldd", "[]->d", "movtst16", 2, 0xec, 3, 3, CLR_V_CHG_NZ }, { "lds", "#->sp", "movtst16", 3, 0xcf, 2, 2, CLR_V_CHG_NZ }, { "lds", "*->sp", "movtst16", 2, 0xdf, 3, 3, CLR_V_CHG_NZ }, { "lds", "()->sp", "movtst16", 3, 0xff, 3, 3, CLR_V_CHG_NZ }, { "lds", "[]->sp", "movtst16", 2, 0xef, 3, 3, CLR_V_CHG_NZ }, { "ldx", "#->x", "movtst16", 3, 0xce, 2, 2, CLR_V_CHG_NZ }, { "ldx", "*->x", "movtst16", 2, 0xde, 3, 3, CLR_V_CHG_NZ }, { "ldx", "()->x", "movtst16", 3, 0xfe, 3, 3, CLR_V_CHG_NZ }, { "ldx", "[]->x", "movtst16", 2, 0xee, 3, 3, CLR_V_CHG_NZ }, { "ldy", "#->y", "movtst16", 3, 0xcd, 2, 2, CLR_V_CHG_NZ }, { "ldy", "*->y", "movtst16", 2, 0xdd, 3, 3, CLR_V_CHG_NZ }, { "ldy", "()->y", "movtst16", 3, 0xfd, 3, 3, CLR_V_CHG_NZ }, { "ldy", "[]->y", "movtst16", 2, 0xed, 3, 3, CLR_V_CHG_NZ }, { "leas", "&[]->sp", "lea16", 2, 0x1b, 2, 2, CHG_NONE }, { "leax", "&[]->x", "lea16", 2, 0x1a, 2, 2, CHG_NONE }, { "leay", "&[]->y", "lea16", 2, 0x19, 2, 2, CHG_NONE }, { "lsr", "()->()", "lsr8", 3, 0x74, 4, 4, CLR_N_CHG_ZVC }, { "lsr", "[]->[]", "lsr8", 2, 0x64, 3, 3, CLR_N_CHG_ZVC }, { "lsra", "a->a", "lsr8", 1, 0x44, 1, 1, CLR_N_CHG_ZVC }, { "lsrb", "b->b", "lsr8", 1, 0x54, 1, 1, CLR_N_CHG_ZVC }, { "lsrd", "d->d", "lsr16", 1, 0x49, 1, 1, CLR_N_CHG_ZVC }, { "mem", 0, 0, 1, 0x01, 5, 5, CHG_HNZVC }, { "mul", "b,a->d", "mul16", 1, 0x12, 3, 3, CHG_C }, { "neg", "()->()", "neg8", 3, 0x70, 4, 4, CHG_NZVC }, { "neg", "[]->[]", "neg8", 2, 0x60, 3, 3, CHG_NZVC }, { "nega", "a->a", "neg8", 1, 0x40, 1, 1, CHG_NZVC }, { "negb", "b->b", "neg8", 1, 0x50, 1, 1, CHG_NZVC }, { "nop", "", "nop", 1, 0xa7, 1, 1, CHG_NONE }, { "oraa", "#,a->a", "or8", 2, 0x8a, 1, 1, CLR_V_CHG_NZ }, { "oraa", "*,a->a", "or8", 2, 0x9a, 3, 3, CLR_V_CHG_NZ }, { "oraa", "(),a->a", "or8", 3, 0xba, 3, 3, CLR_V_CHG_NZ }, { "oraa", "[],a->a", "or8", 2, 0xaa, 3, 3, CLR_V_CHG_NZ }, { "orab", "#,b->b", "or8", 2, 0xca, 1, 1, CLR_V_CHG_NZ }, { "orab", "*,b->b", "or8", 2, 0xda, 3, 3, CLR_V_CHG_NZ }, { "orab", "(),b->b", "or8", 3, 0xfa, 3, 3, CLR_V_CHG_NZ }, { "orab", "[],b->b", "or8", 2, 0xea, 3, 3, CLR_V_CHG_NZ }, { "orcc", "#,ccr->ccr", "or8", 2, 0x14, 1, 1, CHG_ALL }, { "page2", 0, "page2", 1, 0x18, 0, 0, CHG_NONE }, { "psha", "a->(sp)", "mov8", 1, 0x36, 2, 2, CHG_NONE }, { "pshb", "b->(sp)", "mov8", 1, 0x37, 2, 2, CHG_NONE }, { "pshc", "ccr->(sp)", "mov8", 1, 0x39, 2, 2, CHG_NONE }, { "pshd", "d->(sp)", "mov16", 1, 0x3b, 2, 2, CHG_NONE }, { "pshx", "x->(sp)", "mov16", 1, 0x34, 2, 2, CHG_NONE }, { "pshy", "y->(sp)", "mov16", 1, 0x35, 2, 2, CHG_NONE }, { "pula", "(sp)->a", "mov8", 1, 0x32, 3, 3, CHG_NONE }, { "pulb", "(sp)->b", "mov8", 1, 0x33, 3, 3, CHG_NONE }, { "pulc", "(sp)->ccr", "mov8", 1, 0x38, 3, 3, CHG_ALL }, { "puld", "(sp)->d", "mov16", 1, 0x3a, 3, 3, CHG_NONE }, { "pulx", "(sp)->x", "mov16", 1, 0x30, 3, 3, CHG_NONE }, { "puly", "(sp)->y", "mov16", 1, 0x31, 3, 3, CHG_NONE }, { "rol", "()->()", "rol8", 3, 0x75, 4, 4, CHG_NZVC }, { "rol", "[]->[]", "rol8", 2, 0x65, 3, 3, CHG_NZVC }, { "rola", "a->a", "rol8", 1, 0x45, 1, 1, CHG_NZVC }, { "rolb", "b->b", "rol8", 1, 0x55, 1, 1, CHG_NZVC }, { "ror", "()->()", "ror8", 3, 0x76, 4, 4, CHG_NZVC }, { "ror", "[]->[]", "ror8", 2, 0x66, 3, 3, CHG_NZVC }, { "rora", "a->a", "ror8", 1, 0x46, 1, 1, CHG_NZVC }, { "rorb", "b->b", "ror8", 1, 0x56, 1, 1, CHG_NZVC }, { "rtc", 0, 0, 1, 0x0a, 6, 6, CHG_NONE }, { "rti", 0, "rti12", 1, 0x0b, 8, 10, CHG_ALL}, { "rts", 0, "rts12", 1, 0x3d, 5, 5, CHG_NONE }, { "sbca", "#,a->a", "sbc8", 2, 0x82, 1, 1, CHG_NZVC }, { "sbca", "*,a->a", "sbc8", 2, 0x92, 3, 3, CHG_NZVC }, { "sbca", "(),a->a", "sbc8", 3, 0xb2, 3, 3, CHG_NZVC }, { "sbca", "[],a->a", "sbc8", 2, 0xa2, 3, 3, CHG_NZVC }, { "sbcb", "#,b->b", "sbc8", 2, 0xc2, 1, 1, CHG_NZVC }, { "sbcb", "*,b->b", "sbc8", 2, 0xd2, 3, 3, CHG_NZVC }, { "sbcb", "(),b->b", "sbc8", 3, 0xf2, 3, 3, CHG_NZVC }, { "sbcb", "[],b->b", "sbc8", 2, 0xe2, 3, 3, CHG_NZVC }, { "staa", "a->*", "movtst8", 2, 0x5a, 2, 2, CLR_V_CHG_NZ }, { "staa", "a->()", "movtst8", 3, 0x7a, 3, 3, CLR_V_CHG_NZ }, { "staa", "a->[]", "movtst8", 2, 0x6a, 2, 2, CLR_V_CHG_NZ }, { "stab", "b->*", "movtst8", 2, 0x5b, 2, 2, CLR_V_CHG_NZ }, { "stab", "b->()", "movtst8", 3, 0x7b, 3, 3, CLR_V_CHG_NZ }, { "stab", "b->[]", "movtst8", 2, 0x6b, 2, 2, CLR_V_CHG_NZ }, { "std", "d->*", "movtst16", 2, 0x5c, 2, 2, CLR_V_CHG_NZ }, { "std", "d->()", "movtst16", 3, 0x7c, 3, 3, CLR_V_CHG_NZ }, { "std", "d->[]", "movtst16", 2, 0x6c, 2, 2, CLR_V_CHG_NZ }, { "sts", "sp->*", "movtst16", 2, 0x5f, 2, 2, CLR_V_CHG_NZ }, { "sts", "sp->()", "movtst16", 3, 0x7f, 3, 3, CLR_V_CHG_NZ }, { "sts", "sp->[]", "movtst16", 2, 0x6f, 2, 2, CLR_V_CHG_NZ }, { "stx", "x->*", "movtst16", 2, 0x5e, 2, 2, CLR_V_CHG_NZ }, { "stx", "x->()", "movtst16", 3, 0x7e, 3, 3, CLR_V_CHG_NZ }, { "stx", "x->[]", "movtst16", 2, 0x6e, 2, 2, CLR_V_CHG_NZ }, { "sty", "y->*", "movtst16", 2, 0x5d, 2, 2, CLR_V_CHG_NZ }, { "sty", "y->()", "movtst16", 3, 0x7d, 3, 3, CLR_V_CHG_NZ }, { "sty", "y->[]", "movtst16", 2, 0x6d, 2, 2, CLR_V_CHG_NZ }, { "suba", "#,a->a", "sub8", 2, 0x80, 1, 1, CHG_NZVC }, { "suba", "*,a->a", "sub8", 2, 0x90, 3, 3, CHG_NZVC }, { "suba", "(),a->a", "sub8", 3, 0xb0, 3, 3, CHG_NZVC }, { "suba", "[],a->a", "sub8", 2, 0xa0, 3, 3, CHG_NZVC }, { "subb", "#,b->b", "sub8", 2, 0xc0, 1, 1, CHG_NZVC }, { "subb", "*,b->b", "sub8", 2, 0xd0, 3, 3, CHG_NZVC }, { "subb", "(),b->b", "sub8", 3, 0xf0, 3, 3, CHG_NZVC }, { "subb", "[],b->b", "sub8", 2, 0xe0, 3, 3, CHG_NZVC }, { "subd", "#,d->d", "sub16", 3, 0x83, 2, 2, CHG_NZVC }, { "subd", "*,d->d", "sub16", 2, 0x93, 3, 3, CHG_NZVC }, { "subd", "(),d->d", "sub16", 3, 0xb3, 3, 3, CHG_NZVC }, { "subd", "[],d->d", "sub16", 2, 0xa3, 3, 3, CHG_NZVC }, { "swi", 0, 0, 1, 0x3f, 9, 9, CHG_NONE }, { "tst", "()", "tst8", 3, 0xf7, 3, 3, CLR_VC_CHG_NZ }, { "tst", "[]", "tst8", 2, 0xe7, 3, 3, CLR_VC_CHG_NZ }, { "tsta", "a", "tst8", 1, 0x97, 1, 1, CLR_VC_CHG_NZ }, { "tstb", "b", "tst8", 1, 0xd7, 1, 1, CLR_VC_CHG_NZ }, { "wai", 0, 0, 1, 0x3e, 8, _M, CHG_NONE }};struct m6811_opcode_def m6812_page2_opcodes[] = { { "cba", "b,a", "sub8", 2, 0x17, 2, 2, CHG_NZVC }, /* After 'daa', the Z flag is undefined. Mark it as changed. */ { "daa", 0, "daa8", 2, 0x07, 3, 3, CHG_NZVC }, { "edivs", 0, 0, 2, 0x14, 12, 12, CHG_NZVC }, { "emacs", 0, 0, 2, 0x12, 13, 13, CHG_NZVC }, { "emaxd", "[],d->d", "max16", 3, 0x1a, 4, 4, CHG_NZVC }, { "emaxm", "[],d->[]", "max16", 3, 0x1e, 4, 4, CHG_NZVC }, { "emind", "[],d->d", "min16", 3, 0x1b, 4, 4, CHG_NZVC }, { "eminm", "[],d->[]", "min16", 3, 0x1f, 4, 4, CHG_NZVC }, { "emuls", 0, 0, 2, 0x13, 3, 3, CHG_NZC }, { "etbl", "[]", "tbl16", 3, 0x3f, 10, 10, CHG_NZC }, { "fdiv", "x,d->x", "fdiv16", 2, 0x11, 12, 12, CHG_ZVC }, { "idiv", "x,d->x", "idiv16", 2, 0x10, 12, 12, CLR_V_CHG_ZC }, { "idivs", 0, 0, 2, 0x15, 12, 12, CHG_NZVC }, { "lbcc", "R", "bcc", 4, 0x24, 3, 4, CHG_NONE }, { "lbcs", "R", "bcs", 4, 0x25, 3, 4, CHG_NONE }, { "lbeq", "R", "beq", 4, 0x27, 3, 4, CHG_NONE }, { "lbge", "R", "bge", 4, 0x2c, 3, 4, CHG_NONE }, { "lbgt", "R", "bgt", 4, 0x2e, 3, 4, CHG_NONE }, { "lbhi", "R", "bhi", 4, 0x22, 3, 4, CHG_NONE }, { "lble", "R", "ble", 4, 0x2f, 3, 4, CHG_NONE }, { "lbls", "R", "bls", 4, 0x23, 3, 4, CHG_NONE }, { "lblt", "R", "blt", 4, 0x2d, 3, 4, CHG_NONE }, { "lbmi", "R", "bmi", 4, 0x2b, 3, 4, CHG_NONE }, { "lbne", "R", "bne", 4, 0x26, 3, 4, CHG_NONE }, { "lbpl", "R", "bpl", 4, 0x2a, 3, 4, CHG_NONE }, { "lbra", "R", "bra", 4, 0x20, 4, 4, CHG_NONE }, { "lbrn", "R", "nop", 4, 0x21, 3, 3, CHG_NONE }, { "lbvc", "R", "bvc", 4, 0x28, 3, 4, CHG_NONE }, { "lbvs", "R", "bvs", 4, 0x29, 3, 4, CHG_NONE }, { "maxa", "[],a->a", "max8", 3, 0x18, 4, 4, CHG_NZVC }, { "maxm", "[],a->[]", "max8", 3, 0x1c, 4, 4, CHG_NZVC }, { "mina", "[],a->a", "min8", 3, 0x19, 4, 4, CHG_NZVC }, { "minm", "[],a->[]", "min8", 3, 0x1d, 4, 4, CHG_NZVC }, { "movb", 0, "move8", 5, 0x0b, 4, 4, CHG_NONE }, { "movb", 0, "move8", 4, 0x08, 4, 4, CHG_NONE }, { "movb", 0, "move8", 6, 0x0c, 6, 6, CHG_NONE }, { "movb", 0, "move8", 5, 0x09, 5, 5, CHG_NONE }, { "movb", 0, "move8", 5, 0x0d, 5, 5, CHG_NONE }, { "movb", 0, "move8", 4, 0x0a, 5, 5, CHG_NONE }, { "movw", 0, "move16", 6, 0x03, 5, 5, CHG_NONE }, { "movw", 0, "move16", 5, 0x00, 4, 4, CHG_NONE }, { "movw", 0, "move16", 6, 0x04, 6, 6, CHG_NONE }, { "movw", 0, "move16", 5, 0x01, 5, 5, CHG_NONE }, { "movw", 0, "move16", 5, 0x05, 5, 5, CHG_NONE }, { "movw", 0, "move16", 4, 0x02, 5, 5, CHG_NONE }, { "rev", 0, 0, 2, 0x3a, _M, _M, CHG_HNZVC }, { "revw", 0, 0, 2, 0x3b, _M, _M, CHG_HNZVC }, { "sba", "b,a->a", "sub8", 2, 0x16, 2, 2, CHG_NZVC }, { "stop", 0, 0, 2, 0x3e, 2, 9, CHG_NONE }, { "tab", "a->b", "movtst8", 2, 0x0e, 2, 2, CLR_V_CHG_NZ }, { "tba", "b->a", "movtst8", 2, 0x0f, 2, 2, CLR_V_CHG_NZ }, { "wav", 0, 0, 2, 0x3c, 8, _M, SET_Z_CHG_HNVC }};void fatal_error (const struct m6811_opcode_def*, const char*, ...);void print (FILE*, int, const char*,...);int gen_fetch_operands (FILE*, int, const struct m6811_opcode_def*, const char*);void gen_save_result (FILE*, int, const struct m6811_opcode_def*, int, const char*);const struct m6811_opcode_pattern*find_opcode_pattern (const struct m6811_opcode_def*);void gen_interp (FILE*, int, const struct m6811_opcode_def*);void gen_interpreter_for_table (FILE*, int, const struct m6811_opcode_def*, int, const char*);void gen_interpreter (FILE*);static int indent_level = 2;static int current_insn_size = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -