COSC 065 Hardware Systems

Fall 2008

Homework Assignment #5

Basic MIPS Assembly Language
Due: Wednesday, October 15th, 11:59pm CDT
Submit: Turn in your source files using the turnin command on Morbius. Please name your files "main-q1.S", "main-q2.S", and "main-q3.S". Failure to follow this simple convention may significantly delay grading of your assignment.
Work may be completed in teams of two. The names of both partners must appear in a comment block at the top of your file for credit to be given. I strongly recommend that you take the time to meet with your partner in person and work together on these projects, rather than work separately and try to integrate at the last minute.
NOTE: For this assignment, I ask that everyone switch to a new partner, different from the lab partner they have worked with for the first half of the course.

This UNIX tutorial may be of some assistance.

Background

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 orde r 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 - Stats

Write an assembler program that reads in integers from the user until a zero is entered. Print the total, the average (total divided by number of items, truncated to an integer), the highest integer seen, and the lowest integer seen.

Example:
? 3
? 4
? 5
? 0
12
4
5
3

You may assume that overflow and underflow do NOT occur.

Q2 - Exponent

Write an assembler program that reads two positive integers, x and y, and prints x to the y power. Your program should continue asking for integers until it has gotten two positive numbers.

Example:
? 2
? 30
1073741824

You may assume that overflow and underflow do NOT occur.

Q3 - Celsius to Fahrenheit

Write an assembler program that reads a positive integer, and converts that integers from a temperature on the Celsius scale to a temperature on the Fahrenheit scale. You need only use integer precision for the conversion.

Example:
? 100
212

You may assume that overflow and underflow do NOT occur.


Back
[Revised 2008 Oct 08 13:29 DWB]