In this lab you will explore the rate at which your processor can execute instructions.
The assembly language program ILP.asm demonstrates instruction level parallelism: the ability of the processor to execute multiple instructions overlapping or even simultaneously.
First, create a C program using the Timer abstract type you've used before to time how long the function nothing_good takes to execute. You'll need to also modify ILP.asm to export nothing_good and to remove the main program currently there.
You want to measure (at least) three timings: the program as written, the program using a loop instruction, and the program that uses a cmp instruction at the top of the loop. Notice that the last variation is slightly longer (more instructions) than the first one. Consider the following questions:
Submit your final program (the modified ILP.asm and your C program) in a zip archive to Moodle along with your results and some comments about what they mean. You can include your results in the comments of your program.
Last Revised: 2017-04-13
© Copyright 2017 by Peter C. Chapin
<PChapin@vtc.vsc.edu>