Write a MIPS program that will handle calculating minifloat addition for two numbers using the rules discussed in class and storing each of the parts as a binary integer. To do this, each ‘minifloat’ number will need to be represented (I suggest hard coded) as one register for the sign, one for the exponent part, one for the ‘significand’ (which you then convert to the fraction part). Hard coding means here that you don’t need to read in the 6 parts as user input, just have something like li $s0, 0 li $s1, 12 li $s2, 5 which is equivalent to a minifloat of 0 1101 101 = 1.101 * 2^(12-7) = 1.101*2^5 This means your program will be work with at least 6 registers as variables. For testing, show that your program can correctly calculate the Lab 5 X+Y and A+B and then one other example of your choosing. Don’t worry about special cases of 0 0000 000 or 1 1111 111 or similar, but your program should detect overflow. This will involve a lot of (in your head) jumping back and forth between decimal and binary potentially: that’s the point. Note: This is an obviously contrived example, the intent is to force you to think about the algorithm, not to make software that anyone would ever want to use.
- Write a MIPS
program that will handle calculating minifloat addition for two numbers using the rules discussed in class and storing each of the parts as a binary integer.
To do this, each ‘minifloat’ number will need to be represented (I suggest hard coded) as one
register for the sign, one for the exponent part, one for the ‘significand’ (which you then convert to the fraction part). Hard coding means here that you don’t need to read in the 6 parts as user input, just have something like
li $s0, 0
li $s1, 12
li $s2, 5
which is equivalent to a minifloat of 0 1101 101 = 1.101 * 2^(12-7) = 1.101*2^5 This means your program will be work with at least 6 registers as variables.
For testing, show that your program can correctly calculate the Lab 5 X+Y and A+B and then one other example of your choosing.
Don’t worry about special cases of 0 0000 000 or 1 1111 111 or similar, but your program should
detect overflow.
This will involve a lot of (in your head) jumping back and forth between decimal and binary
potentially: that’s the point.
Note: This is an obviously contrived example, the intent is to force you to think about the
Trending now
This is a popular solution!
Step by step
Solved in 2 steps