A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Test Order | Opcode (times 1000) | IBM 5150 | Tandy 1000 | Tandy 1000hx 4.77 | Tandy 1000hx 7.16 | PCjr A <128kb | PCjr A >128kb | PCjr B <128kb | PCjr B >128kb | Bytes | Cycles | ||||||||||||||||||||||
2 | 1 | nop | 904 | 972 | 1117 | 1117 | 2234 | 859 | 2234 | 893 | 1 | 3 | ||||||||||||||||||||||
3 | 2 | aaa | 1884 | 1882 | 1884 | 1254 | 2236 | 1885 | 2236 | 1883 | 1 | 8 | ||||||||||||||||||||||
4 | 3 | aad | 12779 | 12779 | 12780 | 8519 | 12778 | 12780 | 12778 | 12779 | 2 | 60 | ||||||||||||||||||||||
5 | 4 | aam | 16133 | 16132 | 16133 | 10755 | 16132 | 16132 | 16132 | 16134 | 2 | 83 | ||||||||||||||||||||||
6 | 5 | mov al,al | 1809 | 1947 | 2235 | 2234 | 4469 | 1721 | 4469 | 1787 | 2 | 2 | ||||||||||||||||||||||
7 | 6 | mov dx,0 | 2714 | 2919 | 3352 | 3352 | 6703 | 2580 | 6703 | 2681 | 3 | 4 | ||||||||||||||||||||||
8 | 7 | mov dl,0 | 1809 | 1947 | 2235 | 2235 | 4469 | 1721 | 4470 | 1787 | 2 | 4 | ||||||||||||||||||||||
9 | 8 | sub al,al | 1809 | 1947 | 2235 | 2235 | 4470 | 1721 | 4470 | 1787 | 2 | 3 | ||||||||||||||||||||||
10 | 9 | sub al,0 | 1809 | 1947 | 2235 | 2235 | 4470 | 1721 | 4470 | 1787 | 3 | 4 | ||||||||||||||||||||||
11 | 10 | sub ax,0 | 2714 | 2919 | 3352 | 3352 | 6705 | 2580 | 6705 | 2681 | 4 | 4 | ||||||||||||||||||||||
12 | 11 | xchg cx,dx | 1809 | 1947 | 2235 | 2235 | 4470 | 1721 | 4470 | 1787 | 2 | 4 | ||||||||||||||||||||||
13 | 12 | xchg ax,dx | 904 | 972 | 1117 | 1117 | 2236 | 859 | 2236 | 893 | 1 | 3 | ||||||||||||||||||||||
14 | 13 | inc al | 1809 | 1947 | 2235 | 2235 | 4470 | 1721 | 4470 | 1787 | 2 | 3 | ||||||||||||||||||||||
15 | 14 | inc ax | 904 | 972 | 1117 | 1117 | 2236 | 859 | 2236 | 893 | 1 | 3 | ||||||||||||||||||||||
16 | 15 | cwd | 1045 | 1045 | 1117 | 1117 | 2234 | 1045 | 2234 | 1045 | 1 | 5 | ||||||||||||||||||||||
17 | 16 | in al,0x60 | 3350 | 3571 | 3911 | 3352 | 5586 | 3352 | 5586 | 3354 | 2 | 10/14 | ||||||||||||||||||||||
18 | 17 | in al,dx (dx=garbage) | 2011 | 2153 | 2235 | 1677 | 3351 | 2106 | 3351 | 2235 | 1 | 8/12 | ||||||||||||||||||||||
19 | 18 | push dx | 3140 | 3209 | 3910 | 3352 | 6705 | 2979 | 6705 | 3093 | 1 | 11/15 | ||||||||||||||||||||||
20 | 19 | pop dx | 2715 | 2945 | 3353 | 3352 | 6705 | 2579 | 6705 | 2681 | 1 | 8 | ||||||||||||||||||||||
21 | 20 | mov ax,[0000] | 4525 | 4840 | 5587 | 5587 | 11174 | 4300 | 11174 | 4468 | 3 | 8+EA | ||||||||||||||||||||||
22 | 21 | mov al,[0000] | 3619 | 3851 | 4469 | 4469 | 8940 | 3436 | 8940 | 3575 | 3 | 8+EA | ||||||||||||||||||||||
23 | 22 | out dx,al (dx=0) | 2031 | 2153 | 2235 | 1677 | 3353 | 2104 | 3351 | 2234 | 1 | 8/12 | ||||||||||||||||||||||
24 | 23 | mul al | 14665 | 14665 | 14665 | 9777 | 14665 | 14666 | 14665 | 14665 | 2 | 70/77 | ||||||||||||||||||||||
25 | 24 | mul ax | 24724 | 24723 | 24724 | 16482 | 24724 | 24724 | 24724 | 24723 | 2 | 113/118 | ||||||||||||||||||||||
26 | 25 | div bl | 17388 | 17388 | 17389 | 11592 | 17389 | 17388 | 17389 | 17389 | 2 | 80/90 | ||||||||||||||||||||||
27 | 26 | div bx | 30799 | 30797 | 30799 | 20532 | 30799 | 30799 | 30799 | 30800 | 2 | 144/162 | ||||||||||||||||||||||
28 | 27 | xlat | 2740 | 2583 | 2793 | 2235 | 4469 | 2552 | 4470 | 2679 | 1 | 11 | ||||||||||||||||||||||
29 | 28 | rep movsb (cx=1000) | 3773 | 3370 | 4193 | 3354 | 5592 | 3579 | 5592 | 3658 | 1 + 1 | 2 + 18 | ||||||||||||||||||||||
30 | 29 | rep movsw (cx=1000) | 5486 | 5658 | 6705 | 5589 | 10063 | 5366 | 10063 | 5364 | 1 + 1 | 2 + 18 | ||||||||||||||||||||||
31 | 30 | shl al,1 | 1809 | 1945 | 2235 | 2234 | 4470 | 1717 | 4470 | 1786 | 2 | 2 | ||||||||||||||||||||||
32 | 31 | shl al,cl (cl=4) | 5027 | 5025 | 5027 | 3350 | 5027 | 5028 | 5027 | 5026 | 2 | 8+4n | ||||||||||||||||||||||
33 | 32 | loop (cx=1000) | 3770 | 3768 | 5026 | 3909 | 7817 | 3829 | 7819 | 3907 | 2 | |||||||||||||||||||||||
34 | ||||||||||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||||||||||
36 | Results are in microsenconds. The smaller, the better | |||||||||||||||||||||||||||||||||
37 | All machines using Intel 8088 at 4.77Mhz except the Tandy 1000hx running an Intel 8088 running at 7.16Mhz | |||||||||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||||||||||
39 | Test source code: | perf.asm | ||||||||||||||||||||||||||||||||
40 | Test binary: | perf.exe | ||||||||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||||||||||
42 | Opcodes sizes + cycles: | http://zsmith.co/intel.html | ||||||||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||||||
100 |