UMBC CMSC 313, Computer Organization & Assembly Language,
Fall 2002, Section 0101
Project 1: Bleeper
Also available in PDF.
Due: Thursday September 19, 2002
This project is a finger-warming exercise to make sure that everyone
can compile an assembly language program, run it through the debugger
and submit the requisite files using the systems in place for the
For this project, you must do the following:
The source code for toupper.asm is available on the GL file
Modify the assembly language program 'toupper.asm' as follows.
Replace all occurrences of the punctuation marks !,
@, # and % with a period. For example,
the input string
What the @#!%!! is going on here?
should be converted to
What the ...... is going on here?
Alphabetic characters, digits and punctuation marks other than !,
@, # and % should be left unchanged. Also, you will find the
conditional jump instructions je and jne to be useful.
Using the UNIX script command, record some sample runs of your program
and a debugging session using gdb. In this session, you should
fully exercise the debugger. You must set several breakpoints, single step
through some instructions, use the automatic display function and examine
the contents of memory before and after processing. The script command
is initiated by the command script. This puts you in a new UNIX
shell which records every character typed or printed to the screen. You
exit from this shell by typing exit at the UNIX prompt. A file
named typescript is placed in the current directory.
Turning in your program
Use the UNIX submit command on the GL system to turn in your
project. You should submit two files: 1) the modified assembly language
program and 2) the typescript file of your debugging session. The class
name for submit is cs313-0101 and the project name is proj1.
The UNIX command to do this should look something like:
submit cs313-0101 proj1 bleeper.asm typescript
Additional help on running NASM, gdb and making system
calls in Linux are available on the assembly
language programming web page for this course.
Recall that the project policy states that programming assignments
must be the result of individual effort. You are not allowed to
work together. Also, your projects will be graded on five criteria:
correctness, design, style, documentation and efficiency. So, it is not
sufficient to turn in programs that assemble and run. Assembly language
programming can be a messy affair --- neatness counts.
12 Sep 2002 11:56:43 EDT
to Fall 2002 CMSC 313 Section Homepage