1) Write an 80x86 assembly language program in EXE file format to do the following
tasks:
a) Open and read the contents of a file into memory (use at least 1 kB).
b) Sort the list in numerical order using the bubble sort method.
c) Display the results on the screen using the same format in (a).
d) Save the output in the same file
e) Uses some of the code from labs 2 and 3 as well as new code.
2) Use the following procedures:
a) MAIN: the main procedure.
b) READ: reads the score file.
c) DISPLAY: display the contents of the binary file.
d) SORT: sort the entries in alphabetical order.
e) ERROR: handles file errors.
f) ADD_SCORE: adds a new score to the list
g) SAVE: consolidates the file to only contain the scores in the list, and saves them
in order. It only saves the top 10 scores!
3) All the DOS function calls used for file I/O should be added as MACROs to your
DOS.MAC file.
4) The high score list is organized as a singly-linked list. Each entry contains two fields:
a) A pointer (offset address) to the next element. The data type is WORD (16-bit).
b) The text field contains a numerical score (ASCII) followed by a '' : '', followed by a
name, and is terminated by 2 spaces ('' ''). The data type is BYTE.
c) The list should only contain 10 scores. (The file may contain more than 10)
d) Each name can be limited to 5 characters.
e) The score must be able to range from 0 to 16777215.
5) There has been some confusion in the past about this lab.
a) I will not provide a score file. You need to have code that can create the file.
b) Printing strings and writing to files will get you some points, but you need to get
the linked list working and sorted to get a good grade.
c) You don’t explicitly declare a linked list in memory. You just declare a buffer
space where the linked list will be read to, added to, sorted, and written from.