pr28489.c
来自「用于进行gcc测试」· C语言 代码 · 共 49 行
C
49 行
typedef int c_int;union c_insn{ void (*op) (); c_int *mem; c_int imm;};static union c_insn c_stack[((0x100 + 4) * 4)];static struct c_ident *c_funcs;static void (*c_op_bz) ();static void c_direct (union c_insn *addr);c_compile (int (*ext_getchar) (), void (*ext_rewind) (), struct c_ident *externs){ c_direct (((void *) 0));}static voidc_direct (union c_insn *addr){ union c_insn *pc = addr; union c_insn *sp = c_stack; c_int imm = 0; static void *ops[] = { &&op_index, &&op_assign, &&op_add_a, &&op_sub_a, &&op_mul_a, &&op_div_a, &&op_mod_a, &&op_or_a, &&op_xor_a, &&op_and_a, &&op_shl_a, &&op_shr_a, }; { c_op_bz = &&op_bz; } goto *(pc++)->op;op_bz:if (imm) { }op_push_imm_imm:(sp - 2)->imm = imm; goto *(pc - 1)->op;op_index:imm = *((sp - 3)->mem += imm);op_assign:*(sp - 3)->mem = imm;op_add_a:imm = *(sp - 3)->mem += imm;op_sub_a:imm = *(sp - 3)->mem -= imm;op_mul_a:imm = *(sp - 3)->mem *= imm;op_div_a:imm = *(sp - 3)->mem /= imm;op_mod_a:imm = *(sp - 3)->mem %= imm;op_or_a:imm = *(sp - 3)->mem |= imm;op_xor_a:imm = *(sp - 3)->mem ^= imm;op_and_a:imm = *(sp - 3)->mem &= imm;op_shl_a:imm = *(sp - 3)->mem <<= imm;op_shr_a:imm = *(sp - 3)->mem >>= imm;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?