Write a MIPS/SPIM assembly language program that prints the smallest and largest values found in a non-empty table of N word-sized integers. The address of the first entry in your table should be named table, and N should be a defined constant.
Test your program out on the following two test cases plus any additional cases that you deem worthwhile:
Modify the palindrome.asm program see attached so that it ignores whitespace, capitalization and punctuation. Your program must thus be able to recognize the following strings as valid palindromes:
Madam, I'm Adam!!!!!!!????
Ed, I saw Harpo Marx ram Oprah W. aside.
A man, a plan, a canal - Panama!
Go hang a salami; I'm a lasagna hog.
"Naomi, sex at noon taxes," I moan.
1 2 321
A "perfect number" is a positive integer greater than 1 which is equal to the sum of its divisors (except for the original number itself). For example, 6 is perfect, because it is equal to 1 + 2 + 3, and it so happens that 1, 2 and 3 are the only integer values smaller than 6 that divide into 6 "evenly." On the other hand, 12 is not perfect, since 12 ? 1 + 2 + 3 + 4 + 6.
Write a MIPS/SPIM assembly language program that will test all integers between 5 and 500, and print out only the "perfect" ones. By the way, there only 3 numbers that should be output, one of which is 6.
For 3 points of additional credit, construct your solution in such a way that the main program repeatedly calls on a "subroutine" named perfect; this subroutine is passed a single integer argument that it checks for the property of being "perfect." A true/false answer of some sort gets returned by this subroutine