COSC 065 Hardware Systems

Fall 2007

Homework Assignment #5

Medium MIPS Assembly Language
Due: Wednesday, Oct 17, 2:00PM CDT
Submit: E-mail zipped tarball of main program source files to professor, with a subject header "COSC 065 HW#5".
Work may be completed in pairs. Each team should submit only once. Be certain to put both team member names on work submitted. It would be courteous to carbon-copy your partner when e-mailing the final submission.

Background

Take time to familiarize yourself with the UNIX environment, using the tutorial here.

Always start your MIPS programming assignments using the MIPS Playground tarball. Download the tarball, and open it in your working directory using the UNIX command "tar xvzf xinu-cosc065.tgz". The file main.S is ready for you to begin programming in MIPS assembly language.

Your work must be compiled on a machine with the proper tools, such as the dual-head Linux boxen in the Systems Lab (CU 310). Consult the professor for advice on connecting remotely if the lab is full or you must work from elsewhere.

In order to assemble your program, use the command "make". In order to run your program, use the command "./mipcon". At any time, you can shutdown the MIPS remote console system by hitting Ctrl-Space, followed by the letter 'q', for 'quit'.

Few rules govern the format of assembly language programs. Make an effort to keep your programs readable and well-documented; sometimes the professor gives partial credit if he can tell what you were trying to do, even if it doesn't quite make it.

Q1 -Calculator

Write an assembler program that reads in arithmetic operators ("+", "-", "*", "/" and "%") and pairs of integers and returns the result of applying the operators. Continue looping until the end of file marker is reached, as discussed in class.

The professor has provided an example program for your reference, runnable on Morbius as ~brylow/cosc065/bin/hw5-calc.

You may assume that overflow and underflow do NOT occur.

Q2 - Kelvin Table

Write an assembler program that reads two positive integers, low and high, and prints a table of conversions from temperature degrees Kelvin to degrees Celsius and degrees Fahrenheit every five degrees Kelvin from low to high.

The professor has provided an example program for your reference, runnable on Morbius as ~brylow/cosc065/bin/hw5-kelvin.

Use the operating system's kprintf() function to format your output.

Q3 - GCD

Write an assembler program that reads two positive integers, x and y, and prints the greatest common divisor of x and y. Continue looping until the end of file marker is reached, as discussed in class.

The professor has provided an example program for your reference, runnable on Morbius as ~brylow/cosc065/bin/hw5-gcd.

You may assume that overflow and underflow do NOT occur.


Back
[Revised 2007 Oct 04 12:24 DWB]