CS3421, Fall 2008

Lab Assignment 2
Assembly Language Program

Due Sunday, October 5, 2008 at 10 PM

You may work with one other person on this lab.
If you do, please submit only one version (from either account), but be sure to put both your names on your assignment.
If you develop you code on your own machine, make sure it works on a CS Lab machine before you submit your final version.


The Problem

All computers must have code to convert a string of the form "635.7736" to double precision internal floating point format. For example, Java has a method called Double.parseDouble(x) that takes a String x and returns the number as a double.

Your assignment is to write an assembly language program that inputs a string that looks like a floating point number (i.e., some digits, a decimal point, then some more digits), converts it to double precision floating point format, and outputs the 8-byte encoding as a 16-digit hexadecimal number. Assume the input is just the number, and that there are no spaces before, after or in the middle of the number. Assume the number will be no longer than 25 characters.

For example, if the input is 1.5, then your program should output 3ff8000000000000.

You MUST input the number as a string - you will get 0 if you input it as a double (and hence not have to do any conversion work yourself). DO NOT use any MIPS floating point instructions - you will get 0 if you do.

Your program should read one number and print one number. DO NOT write a loop that repeatedly reads numbers and prints results.

Use any assembly language instructions you want, including pseudo-instructions. If fact I encourage you to use pseudo-instructions when possible to make the code easier to understand.

Your Source Code File

Put your code in a file called "lab2.s", and follow the same coding coventions as in the previous lab assignment.

Submitting

Test your program as completely as you can. Then use the submit command to electronically submit your "lab2.s" file to "cs3421", assignment "lab2" by the due date.

You must submit your program by the due date/time in order to receive credit.

Late assignments will get a grade of 0.