Olivier Pécheux
opecheux@multimania.com |
l | Le début et la fin de cet article s'adresse à tous tandis que certaines réflexions du milieu sont d'un niveau plus élevé. Si vous "décrochez", vous pouvez toujours aller au paragraphe "Conclusions" |
>Il n'y a point de point de départ |
>Quelle est la dimention d'un point? |
offset := (y shl 8) + (y shl 6) +x offset = (y<<8) + (y<<6) + x | l |
>offset:=(y shl 8)+(y shl 6)+x offset=(y<<8)+(y<<6)+x | l |
offset := ( (y shl 2)+y ) shl 6 +x offset = ( (y<<2)+y ) <<6 +x | l |
offset:=(((y shl 2)+y)shl 6)+x offset=(((y<<2)+y)<<6)+x | l |
l | Quelle est la meilleure formule? |
offset := ( (y shl 1 shl 1)+y ) shl 6 +x offset = ( (y<<1<<1)+y ) <<6 +x | l |
offset:=(((y shl 1 shl 1)+y) shl 6)+x offset=(((y<<1<<1)+y)<<6)+x | l |
8086 | 80286 | 80386 | 80486 | |
décalage de n crans | (12+4n) T | (7+n) T | 3n T | 3n T |
4 o | 4 o | 4 o | 4 o | |
n décalages de 1 cran | 2n T | 2n T | 3n T | 3n T |
2n o | 2n o | 2n o | 2n o |
offset=:(y shl 1 shl 1 +y) shl 1 shl 1... + x offset=(y << 1 << 1 +y) << 1 << 1... + x | l |
offset:=(((y shl 1 shl 1)+y) shl 1 shl 1 shl 1 shl 1 shl 1 shl 1)+x offset=(((y<<1<<1)+y)<<1<<1<<1<<1<<1<<1)+x | l |
offset:=320y+x | l |
>Conclusion |
plateforme | (1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | (9) |
1) (y << 8)+(y<<6) | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
2) ((y << 2)+y) << 6 | 93% | 100% | 115% | 85% | 75% | 100% | 82% | 120% | 82% |
3) ((y << 1 << 1)+y) << 6 | 80% | 112% | 129% | 85% | 81% | 136% | 86% | 115% | 79% |
4) ((y << 1 << 1)+y) << 1... | 107% | 163% | 200% | 100% | 81% | 272% | 103% | 130% | 90% |
5) 320y | 100% | 151% | 185% | 107% | 61% | 260% | 62% | 97% | 103% |
Mesures faites: (1) Turbo Pascal 7.0 sans instructions ou Turbo Pascal 4.0 sous DOS 286 PC Pentium MMX (2) Turbo Pascal 7.0 avec instructions 286 sous DOS PC Pentium MMX (3) Borland C++ 4.5 ou Turbo C 2.0 (avec 286) sous DOS PC Pentium MMX (4) Turbo C 2.0 (sans 286) sous DOS PC Pentium MMX (5)Minimum trouvé avec un 486DX sous DOS (6)Maximum trouvé aavec un 486DX sous DOS (7)Minimum trouvé avec un 386SX sous DOS (8)Maximum trouvé aavec un 386SX sous DOS (9)V20 sous DOS | l |