2. 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...


MIPS programming


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

Extracted text: 2. 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 $1, 12 li $2, 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.

Jun 08, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here