Write an 80x86 assembly program that performs the following functions:
- Reads a set of integers from a file into an array. The data file name is to be read from the command line. You are welcome to use the code examples and macros to do this project.
- Format of the data file: Assume the file gives the number of data points on the first line. Every line following the first line contains exactly one value. The maximum number of integers in the file will be 1000, so a max of 1001 lines.
- Add all the integers that you have read and print out the sum on the screen as well as the greatest and the smallest integer in your array.
Your code must be modular. You must use subroutines/functions for opening the file, reading integers, and populating the array, performing calculations, and printing the array. Except for constants, all values/addresses must be pushed/popped onto the stack. It is not recommended implementing your entire program in Main first and then porting to subroutines.
The max grade you can earn not using subroutines correctly is a 60%.
You should use the following C Functions for your project: fopen, fscanf, fclose, printf
Turning in your program
Use the UNIX submit command on the GL system to turn in your project. You must submit the assembly language program as lab2.asm. The class name for submit is cmpe310. The name of the assignment is lab2. Check the submit help on the webpage. Due to any reason if you are going to submit your project late, the project name will be late. You are also required to turn in a hardcopy of the code and a write-up in the class. You must include a lab cover page in the hardcopy.
The submission should include:-
2. common_code.asm (contains any example code or macros)
Your code must be able to run with what you submit.
You must also turn in to class a project report. The report includes:
1. Cover page (see Blackboard)
2. Typed report with a project description and a general flow of the code. Also, define functions, variables, and labels used in the program. Write the report to an audience that does not necessarily understand assembly.
3. Enscripted code
Failure to follow the submit guidelines will result in a points deduction.