#define Square(x) (x)*(x)
#define Square(x) (x)*(x) #define One 1 #define Two 2 #define Three 3 #define Four 4 #define Five 5 #define Six 6 #define Seven 7 #define Eight 8 #define Nine 9 #define Ten 10 #define Eleven 11 #define Twelve 12 #if (Square(2+3)!=11) Square(Three + Seven) #endif
>p0008a pp:1 src:p0007b.txt #line 14 "p0007b.txt" (3 + 7)*(3 + 7)
>p0008a pp:1 src:p0007b.txt mod:2 (3 + 7)*(3 + 7)
>p0008a calc:1 src:inline:1+2+3+4+5+6+7+8+9+10 55
>p0008a calc:1 src:p0007b.txt 100
int i, j; // 素数を表示するプログラム.
for (i = 2; i < 100; i++) {
for (j = 2; j * j <= i; j++) {
if (i % j == 0) goto skip;
}
printf("%d ", i);
skip: ;
}
printf("\n");>p0008a cc:1 src:p0007e.txt ADD(ESP,-4096); MOV(DWORD [ESP+(23)*4+1024],2); JMP(L4); LABEL(L2:); MOV(DWORD [ESP+(24)*4+1024],2); JMP(L8); LABEL(L6:); MOV(EAX,[ESP+(23)*4+1024]); CDQ(); IDIV(DWORD [ESP+(24)*4+1024]); MOV([ESP+(128)*4+1024],EDX); MOV(EAX,[ESP+(128)*4+1024]); CMP(EAX,0); SETE(AL); MOVZX(EAX,AL); MOV([ESP+(129)*4+1024],EAX); MOV(EAX,[ESP+(129)*4+1024]); CMP(EAX,0); JNE(L22); LABEL(L7:); (以下略)
1: if (strtol(getArg(argc, argv, "cc:", "0"), NULL, 0) != 0) {
2: a_convVc_pp(vc0, vc1, 1 + 2 + 2 * 16, dbg, "[preprocessed]\n%.*s\n", stdout, src);
3: a_convVc_clang_clout(vc1, vc0, 1); if (dbg != 0) printf("[clout]\n%s\n", vc0->p);
4: VecChr_N(vc1) = 0; VecChr_printf(vc1, "Ent_III(256,256,0);\n%sLev_III(256,256,0);\n", vc0->p);
5: a_convVc_pp(vc1, vc0, 1 + 2 * 16, dbg, "[asm_a4vm]\n%.*s\n", stdout, "conv_clout_a4vm");
6: a_convVc_pp(vc0, vc1, 1 + 2 * 16, dbg, "[asm_x86-32-0]\n%.*s\n", stdout, "conv_a4vm_asmX86Bit32Typ0");
7: a_convVc_pp(vc1, vc0, 1 + 2 * 16, 1, "%.*s\n", stdout, "conv_asmX86Bit32Typ0_Typ1");
8: }>p0008a cjit:1 src:p0007e.txt 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
1: if (strtol(getArg(argc, argv, "cjit:", "0"), NULL, 0) != 0) {
2: a_convVc_pp(vc0, vc1, 1 + 2 + 2 * 16, dbg, "[preprocessed]\n%.*s\n", stdout, src);
3: a_convVc_clang_clout(vc1, vc0, 1); if (dbg != 0) printf("[clout]\n%s\n", vc0->p);
4: VecChr_N(vc1) = 0; VecChr_printf(vc1, "Ent_III(256,256,0);\n%sLev_III(256,256,0);\n", vc0->p);
5: a_convVc_pp(vc1, vc0, 1 + 2 * 16, dbg, "[asm_a4vm]\n%.*s\n", stdout, "conv_clout_a4vm");
6: a_convVc_pp(vc0, vc1, 1 + 2 * 16, dbg, "[asm_x86-32-0]\n%.*s\n", stdout, "conv_a4vm_asmX86Bit32Typ0");
7: a_convVc_pp(vc1, vc0, 1 + 2 * 16, dbg, "[asm_db]\n%.*s\n", stdout, "conv_asmX86Bit32Typ0_asmDb");
8: intptr_t bn = a_conv_asmDb_bin(vc0->p, VecChr_N(vc0), bin, binSz, tbl, sizeof tbl / sizeof (a_AsmDbConstTable), bf);
9: if (bn > 0) {
10: if (dbg != 0) { printf("[binary]\n"); hexDump(bin, bn, stdout); }
11: void (*pf)(); pf = (void (*)()) bin; pf();
12: }
13: }DB(0x81); DB(0xC0+4); DD(-4096); DB(0xC7); DB(0x84); DB(0x24); DD((23)*4+1024); DD(2); DB(0xE9); DD_L(4, 1, -4); LBL(2); DB(0xC7); DB(0x84); DB(0x24); DD((24)*4+1024); DD(2); DB(0xE9); DD_L(8, 1, -4); LBL(6);
#define RET() DB(0xC3) #define CDQ() DB(0x99) #define PUSH_R(r) DB(0x50+r) #define POP_R(r) DB(0x58+r) #define PUSH_I(i) DB(0x68); DD(i) #define CALL_I(i) DB(0xE8); DD_R(i-4) #define ADD_RI(r,i) DB(0x81, 0xC0+r); DD(i) #define SUB_RI(r,i) DB(0x81, 0xC0+r+5*8); DD(i) #define CMP_RI(r,i) DB(0x81, 0xC0+r+7*8); DD(i) #define IMUL_RI(r,i) DB(0x69, 0xC0+r*9); DD(i) #define MOV_RI(r,i) DB(0xB8+r); DD(i) #define SHL_RI(r,i) DB(0xC1, 0xC0+r+4*8, i) #define SAR_RI(r,i) DB(0xC1, 0xC0+r+7*8, i) #define JMP_T(t) DB(0xE9); DD_L(t, 1, -4) #define JNE_T(t) DB(0x0F, 0x85); DD_L(t, 1, -4)