#include int arr[64]; char *jp; unsigned now() { return (jp[0] << 8) + jp[1]; } add(a, b) int a, b; { return a + b; } main() { unsigned t0, t1; int i, j, s; jp = (char *) 0xa1; t0 = now(); s = 0; for (i = 0; i < 400; i++) s = add(s, i); t1 = now(); printf("calls %u s=%d\n", t1 - t0, s); t0 = now(); for (j = 0; j < 20; j++) for (i = 0; i < 64; i++) arr[i] = arr[i] + i + j; t1 = now(); printf("array %u a=%d\n", t1 - t0, arr[10]); t0 = now(); s = 0; for (i = 0; i < 1000; i++) { if (i > 500) s = s + 1; else s = s + 2; } t1 = now(); printf("branch %u s=%d\n", t1 - t0, s); t0 = now(); s = 1; for (i = 0; i < 300; i++) s = (s * 3 + i) % 1000; t1 = now(); printf("arith %u s=%d\n", t1 - t0, s); }