#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
>p0007a prepro:1 src:p0016b.txt #line 14 "p0016b.txt" (3 + 7)*(3 + 7)
>p0007a prepro:1 src:p0016b.txt mod:2 (3 + 7)*(3 + 7)
>p0007a calc:1 src:inline:1+2+3+4+5+6+7+8+9+10 55
>p0007a calc:1 src:p0016b.txt 100
MOV(AH,0x02);
MOV(DL,0x20);
LBL(lp);
INT(0x21);
INC(DX);
CMP(DL,0x7E);
JBE_SHORT(lp);
RET();>p0007a x86asm:1 src:p0007c.txt [B4 02 B2 20 CD 21 42 80 FA 7E 76 F8 C3 ]
#define AL R8:0 #define CL R8:1 #define DL R8:2 #define BL R8:3 #define AH R8:4 #define CH R8:5 #define DH R8:6 #define BH R8:7 #define AX R16:0 #define CX R16:1 #define DX R16:2 #define BX R16:3 #define SP R16:4 #define BP R16:5 #define SI R16:6 #define DI R16:7 #define RET() DB(0xC3) #define INT(i) DB(0xCD); DB(i) #define JBE_SHORT(l) DB(0x76); DB_L(l, 1, -1) #define JBE_NEAR(l) DB(0x0F); DB(0x86); DW_L(l, 1, -2) #typedDef MOV(R8:,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0xB0+defRight(r,:)); DB(i) #typedDef MOV(R16:,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0xB8+defRight(r,:)); DB(i) #typedDef INC(R16:,r) DB(0x40+defRight(r,:)) #typedDef DEC(R16:,r) DB(0x48+defRight(r,:)) #typedDef CMP(R8:,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0x80); DB(0xf8+defRight(r,:)); DB(i) #typedDef CMP(R16:,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0x81); DB(0xf8+defRight(r,:)); DW(i) #typedDef CMP(R8:0,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0x3C); DB(i) // ALは特別. #typedDef CMP(R16:0,r, (0,1,2,3,4,5,6,7,8,9),i) DB(0x3D); DW(i) // AXは特別.
>p0007a x86asm:1 src:p0007c.txt dbg:1
DB(0xB0+4); DB(0x02);
DB(0xB0+2); DB(0x20);
LBL(2);
DB(0xCD); DB(0x21);
DB(0x40+2);
DB(0x80); DB(0xf8+2); DB(0x7E);
DB(0x76); DB_L(2, 1, -1);
DB(0xC3);
[B4 02 B2 20 CD 21 42 80 FA 7E 76 F8 C3 ]>p0007a x86asm:1 src:inline:CMP(CL,123); [80 F9 7B ] >p0007a x86asm:1 src:inline:CMP(AL,123); [3C 7B ]
printf("hello, world\n");>p0007a clang:1 src:p0007d.txt hello, world
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");>p0007a clang:1 src:t0016p.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
int x, y, c; c = 0;
openWin(256, 256);
for (y = 0; y < 256; y++) {
for (x = 0; x < 256; x++) {
setPix(x, y, c);
c = c + 0x100;
}
}
waitInf(); // これがないとウィンドウが一瞬で閉じられてしまう.int x, y;
openWin(256, 256);
for (y = 0; y < 256; y++)
for (x = 0; x < 256; x++)
setPix(x, y, (x ^ y) * 0x10101);
waitInf(); // これがないとウィンドウが一瞬で閉じられてしまう.int x, y, c, sx, sy, cx, cy, zx, zy, xx, yy, n, sn;
openWin(512, 384);
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
sn = 0;
for (sx = 0; sx < 4; sx++) {
cx = (x * 4 + sx) * 56 + 4673536;
for (sy = 0; sy < 4; sy++) {
cy = (y * 4 + sy) * -56 - 124928;
zx = cx; zy = cy;
for (n = 1; n < 447; n++) {
Mul64Shr_RRRI(dR(xx), dR(zx), dR(zx), 24); // xx = (zx * zx) >> 24;
Mul64Shr_RRRI(dR(yy), dR(zy), dR(zy), 24);
if (xx + yy > 0x4000000) goto sk0;
Mul64Shr_RRRI(dR(zy), dR(zy), dR(zx), 23);
zx = xx + cx - yy;
zy = zy + cy;
}
sk0:
sn = sn + n;
}
}
sn = sn >> 4;
c = sn << 8;
if (sn < 256) goto sk1;
c = 0;
if (sn >= 447) goto sk1;
c = sn + 0xfe01;
sk1:
setPix(x, y, c << 8);
}
}
waitInf();