Keil Logo

C166 Version 5 Operation Timings
80C16x Devices — Small Model

The following benchmarks provide a baseline for the execution speed of code generated by the Keil C166 Compiler. Automated test scripts were used to calculate the minimum, average, and maximum time required for each operation.

Each benchmark lists the number of states and the number of seconds required to perform the operation. The state time represents the actual number of instruction cycles. You may specify the oscillator frequency and the clock divisor (for the instruction clock) to obtain execution times in seconds.

Enter MCU Speed Details
(Default XTAL Frequency: 20MHz)
 
XTAL Frequency: MHz
Instruction Clock Divisor:
 

Unsigned Character Operations

Operation Min Avg Max
unsigned char + 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
unsigned char - 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
unsigned char * 62
3.10 µSecs
62
3.10 µSecs
62
3.10 µSecs
unsigned char / 80
4.00 µSecs
80
4.00 µSecs
80
4.00 µSecs
unsigned char % 88
4.40 µSecs
88
4.40 µSecs
88
4.40 µSecs
unsigned char >> 46
2.30 µSecs
46
2.30 µSecs
46
2.30 µSecs
unsigned char << 42
2.10 µSecs
42
2.10 µSecs
42
2.10 µSecs

Signed Character Operations

Operation Min Avg Max
signed char + 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
signed char - 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
signed char * 62
3.10 µSecs
62
3.10 µSecs
62
3.10 µSecs
signed char / 80
4.00 µSecs
80
4.00 µSecs
80
4.00 µSecs
signed char % 88
4.40 µSecs
88
4.40 µSecs
88
4.40 µSecs
signed char >> 46
2.30 µSecs
46
2.30 µSecs
46
2.30 µSecs
signed char << 42
2.10 µSecs
42
2.10 µSecs
42
2.10 µSecs

Unsigned Integer Operations

Operation Min Avg Max
unsigned int + 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
unsigned int - 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
unsigned int * 54
2.70 µSecs
54
2.70 µSecs
54
2.70 µSecs
unsigned int / 72
3.60 µSecs
72
3.60 µSecs
72
3.60 µSecs
unsigned int % 80
4.00 µSecs
80
4.00 µSecs
80
4.00 µSecs
unsigned int >> 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
unsigned int << 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs

Signed Integer Operations

Operation Min Avg Max
signed int + 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
signed int - 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
signed int * 54
2.70 µSecs
54
2.70 µSecs
54
2.70 µSecs
signed int / 72
3.60 µSecs
72
3.60 µSecs
72
3.60 µSecs
signed int % 80
4.00 µSecs
80
4.00 µSecs
80
4.00 µSecs
signed int >> 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
signed int << 38
1.90 µSecs
38
1.90 µSecs
38
1.90 µSecs
abs () 54
2.70 µSecs
54
2.70 µSecs
54
2.70 µSecs

Unsigned Long Operations

Operation Min Avg Max
unsigned long + 82
4.10 µSecs
82
4.10 µSecs
82
4.10 µSecs
unsigned long - 82
4.10 µSecs
82
4.10 µSecs
82
4.10 µSecs
unsigned long * 158
7.90 µSecs
158
7.90 µSecs
158
7.90 µSecs
unsigned long / 276
13.80 µSecs
280
14.00 µSecs
296
14.80 µSecs
unsigned long % 276
13.80 µSecs
280
14.00 µSecs
296
14.80 µSecs
unsigned long >> 74
3.70 µSecs
100
5.00 µSecs
110
5.50 µSecs
unsigned long << 74
3.70 µSecs
100
5.00 µSecs
110
5.50 µSecs

Signed Long Operations

Operation Min Avg Max
signed long + 82
4.10 µSecs
82
4.10 µSecs
82
4.10 µSecs
signed long - 82
4.10 µSecs
82
4.10 µSecs
82
4.10 µSecs
signed long * 158
7.90 µSecs
158
7.90 µSecs
158
7.90 µSecs
signed long / 328
16.40 µSecs
362
18.10 µSecs
402
20.10 µSecs
signed long % 328
16.40 µSecs
362
18.10 µSecs
402
20.10 µSecs
signed long >> 74
3.70 µSecs
100
5.00 µSecs
110
5.50 µSecs
signed long << 74
3.70 µSecs
100
5.00 µSecs
110
5.50 µSecs
labs () 96
4.80 µSecs
100
5.00 µSecs
104
5.20 µSecs

Floating-Point Operations

Operation Min Avg Max
float + 362
18.10 µSecs
444
22.20 µSecs
760
38.00 µSecs
float - 296
14.80 µSecs
452
22.60 µSecs
768
38.40 µSecs
float * 432
21.60 µSecs
447
22.35 µSecs
462
23.10 µSecs
float / 554
27.70 µSecs
568
28.40 µSecs
584
29.20 µSecs
modf () 1,104
55.20 µSecs
1,683
84.15 µSecs
1,810
90.50 µSecs
fabs () 312
15.60 µSecs
313
15.65 µSecs
314
15.70 µSecs
ceil () 1,618
80.90 µSecs
2,031
101.55 µSecs
2,146
107.30 µSecs
floor () 1,618
80.90 µSecs
2,031
101.55 µSecs
2,142
107.10 µSecs
pow () 1,090
54.50 µSecs
4,081
204.05 µSecs
10,314
515.70 µSecs
sqrt () 92
4.60 µSecs
309
15.45 µSecs
548
27.40 µSecs
exp () 528
26.40 µSecs
572
28.60 µSecs
4,898
244.90 µSecs
log () 88
4.40 µSecs
1,925
96.25 µSecs
3,828
191.40 µSecs
log10 () 292
14.60 µSecs
2,221
111.05 µSecs
4,230
211.50 µSecs
sin () 2,348
117.40 µSecs
3,510
175.50 µSecs
3,922
196.10 µSecs
cos () 2,160
108.00 µSecs
3,513
175.65 µSecs
3,916
195.80 µSecs
tan () 4,258
212.90 µSecs
4,300
215.00 µSecs
5,194
259.70 µSecs
asin () 1,026
51.30 µSecs
5,857
292.85 µSecs
6,922
346.10 µSecs
acos () 2,860
143.00 µSecs
6,349
317.45 µSecs
7,340
367.00 µSecs
atan () 1,958
97.90 µSecs
4,330
216.50 µSecs
5,158
257.90 µSecs
atan2 () 2,606
130.30 µSecs
5,082
254.10 µSecs
6,444
322.20 µSecs
sinh () 8,634
431.70 µSecs
10,496
524.80 µSecs
11,102
555.10 µSecs
cosh () 8,626
431.30 µSecs
10,488
524.40 µSecs
11,094
554.70 µSecs
tanh () 9,380
469.00 µSecs
9,569
478.45 µSecs
10,844
542.20 µSecs

Buffer Operations

Operation Min Avg Max
memset (10) 454
22.70 µSecs
454
22.70 µSecs
454
22.70 µSecs
memset (100) 3,878
193.90 µSecs
3,878
193.90 µSecs
3,878
193.90 µSecs
memset (1000) 38,078
1,903.90 µSecs
38,078
1,903.90 µSecs
38,078
1,903.90 µSecs
memcpy (10) 366
18.30 µSecs
366
18.30 µSecs
366
18.30 µSecs
memcpy (100) 2,710
135.50 µSecs
2,710
135.50 µSecs
2,710
135.50 µSecs
memcpy (1000) 26,110
1,305.50 µSecs
26,110
1,305.50 µSecs
26,110
1,305.50 µSecs
memmove
(10 with overlap)
732
36.60 µSecs
732
36.60 µSecs
732
36.60 µSecs
memmove
(100 with overlap)
5,956
297.80 µSecs
5,956
297.80 µSecs
5,956
297.80 µSecs
memmove
(1000 with overlap)
58,156
2,907.80 µSecs
58,156
2,907.80 µSecs
58,156
2,907.80 µSecs

Memory Allocation Operations

Operation Min Avg Max
malloc (),
100.0% successful
258
12.90 µSecs
1,043
52.15 µSecs
2,758
137.90 µSecs
free () 298
14.90 µSecs
1,093
54.65 µSecs
2,302
115.10 µSecs

Notes Note

  • These tests were performed and measured using the µVision Debugger. Test code was compiled with the C166 Version 5.03 C Compiler using the Small Memory Model and Optimization Level 7-SPEED.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.