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:
... has 22 significant bits.
Do this with one loop. Your program should leave the result in register $5.
Declare a string in the data section:
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.
For the 5th question, in the Settings menu of SPIM set Bare Machine OFF, Allow Pseudo Instructions ON, Exception Handler OFF, Delayed Branches ON, Delayed Loads ON and Mapped IO OFF.
Use the la, lw and sw pseudo-instructions with symbolic addresses.
Declare three arrays, each of the same size:
size .word 7
array1: .word -30, -23, 56, -43, 72, -18, 71
array2: .word 45, 23, 21, -23, -82, 0, 69
result: .word 0, 0, 0, 0, 0, 0, 0
Initialize a base register for each array (use the la instruction.) Now implement a loop that adds corresponding elements in the first two arrays and stores the result in the corresponding element of the result array.