二、C
C近来极受美国各系统公司的推崇,我们特以之与组合语言作个比较,但不幸的是在指令的精简上,就显得力不从心,不像组合语言那样可以斤斤计较。
因此,我们祇能就点阵移位、查小表及查总表的方式,测试其效率。首先,利用查大表的方式如下:
1: main()
2: {
3: unsigned char s[24][3];
4: unsigned short tab[256], d[48][3], count;
5: reGISter short i,j,k;
6:
7: for (count = 0; count < 10000; count++)
8: {
9: k = 0;
10: for (i = 0; i < 24; i++)
11: {
12: for (j = 0; j < 3; j++)
13: d[k][j] = d[k + 1][j] = tab[s[i][j]];
14: k += 2;
15: }
16: }
17: }
程式制作时间10分钟,较组合语言稍快;占用空间4575字元,则大了三倍,至于执行速度为18秒,慢了七倍之多。
再换个方法,试一试查小表如次:
1: main()
2: {
3: unsigned char i,j, s[24][3], d[48][6], tab[16];
4: unsigned short count;
5: register short k, l, x;
6:
7: for (count = 0; count < 10000; count++)
8: {
9: k = 0;
10: for (i = 0; i < 24; i++)
11: {
12: l = 0;
13 for (j = 0; j < 3; j++)
14: {
15: x = s[i][j];
16: d[k][l] = d[k + 1][l] = tab[x & 0360 >> 4];






