There are four programming questions for you to do. Please submit five.sor.asmfiles. In the settings on SPIM for the first 4 questions, as usual use a bare machine with no exception handler, and also choose "Enable Delayed Loads" and "Enable Delayed Branches". This simulates a more realistic machine with a pipelined architecture.
1. Sum of Odds
Write a program that computes the sum of all the odd numbers between 1 and 99:
1+3+5+7+···+97+99
Do this with one counting loop. The loop just needs to increment the counter by the proper amount on each iteration.
2. Significant Bits
Write a program that loads a word into register $8, and then computes the answer to the following question:How many significant bits are in the number in register $8?
The significant bits in a number are the leftmost 1 and all bits to its right. So the bit pattern:
0000 0000 0010 1001 1000 1101 0111 1101... has 22 significant bits. (For example, to load register $8 with the above pattern, 0x00298D7D, use anorifollowed by a left shift followed by anotherori.)
Do this with one loop. Your program should leave the result in register $5.
3. Allowed Ranges
A temperature in $8 is allowed to be within either of two ranges:20=temp=40and60=temp=80. Write a program that sets a flag (register $3) to 1 if the temperature is in an allowed range and to 0 if the temperature is not in an allowed range.
4. To Lower CaseDeclare a string in the data section:
.data
string: .asciiz "ABCDEFG"
Write a program that converts the string to all lower case characters. Do this by adding 0x20 to each character in the string. (See the ASCII chart to figure out why this works.)
Assume that the data consists only of uppercase alphabetical characters, with no spaces or punctuation.