UMBC CMSC 313, Computer Organization & Assembly Language, Fall 2003

Project 3: External Records

Also available in PDF.


Tue 10/07/03Section 0101 (Chang) & Section 0301 (Macneil)
Wed 10/08/03Section 0201 (Patel & Bourner)


The objective of this programming project is to gain experience writing more complex assembly language programs and to use indexed addressing modes.


Your assembly language program for this project will work with an externally defined array of records. This array is defined in a C program as follows:
struct {
char realname[32] ;
char nickname[16] ;
char alignment[20] ;
char role[20] ;
int points ;
int level ;

} records[10] ;

int num_records = 10 ;
The records in the array have pre-initialized values not shown here. The full text of the C program is available on the GL file system at: /afs/

Your assembly language program must search through the array and find the record with the least number of points and the record with the alphabetically first nickname. It must then print out the realname field of these two records. E.g.,

Lowest Points: James Pressman
First Nickname: Dan Gannett

Implementation Notes

Turning in your program

Use the UNIX submit command on the GL system to turn in your project. You should submit at least 4 files: your assembly language program, at least 2 of your own test cases and a typescript file of sample runs of your program. The class name for submit is cs313_0101, cs313_0102 or cs313_0103 for respectively sections 0101 (Chang), 0201 (Patel & Bourner) or 0301 (Macneil). The name of the assignment name is proj3. The UNIX command to do this should look something like:

submit cs313_0103 proj3 report.asm myrec1.c myrec2.c typescript

Last Modified: 25 Sep 2003 22:23:41 EDT by Richard Chang
to Fall 2003 CMSC 313 Section Homepage