Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

please just give me a code that works for the following. It has to be MIPs assembly and run in qtspim. Please check that Description:

please just give me a code that works for the following. It has to be MIPs assembly and run in qtspim. Please check that Description:
Assume your Howard ID as a decimal integer is X. Let N =26+(X %11) where % is the modulo
operation, and M = N 10.
You will write a MIPS program that reads a string of up to 1000 characters (excluding the trailing
carriage return and null character) from user input.
With single slash (/) as the delimiter, split the input string into multiple substrings (with the
slash removed). If there is no slash in the input, the whole input string is considered a
substring referred to below.
For each substring,
o Pick the characters from '0' to '9' and from 'a' to \beta and from 'A' to \Delta .\beta stands for the Mth lower case letter and \Delta stands for the M-th upper case letter in the English alphabet,
where M is as defined at the beginning of the description. Consider each such character
as a base-N digit and calculate the sum. The sum is "-" if there are no such characters.
In a base-N number, both 'a' and 'A' correspond to the decimal integer of 10, both 'b'
and 'B' to 11, and so on, and both \beta and \Delta correspond to N 1.
o Output the calculated sum.
If there are multiple substrings, the output for the substrings should be separated by two
spaces with a single slash in between, for example, "2/3/4".
The program must exit after processing one single user input.
The processing of the whole input string must be done in a subprogram labelled as
process_whole_string. The main program must call process_whole_string and pass the string
address into it via the register $a0. The subprogram parses the string and prints the output
as described above. No return value is necessary from the subprogram.
When processing each substring, process_whole_string must call another subprogram
labelled as process_substring, where the substring address is passed into process_substring
via the stack, and the sum of the substring isreturned to Subprogram A via the register $v0.
Sample test cases (assuming the Howard ID is 12345678):
12345678%11=4, therefore the base is 26+4=30,\beta is 't' and \Delta is 'T'.
Input: C
Output: 12
Input: 0/1/2/A/b/T/t/Z/?
Output: 0/1/2/10/11/29/29/-/-
Input: a0/123/0Ab9
Output: 10/6/30
Input: 10/ xyz!/2.3.4/ @!A t$ //
Output: 1/-/9/39/-/-
Requirements:
The program must be able to run correctly under QtSpim.
The program must be named as mips.s.
The output must have the exact format as specified above. No other messages or promptsshould
be printed except the numbers and the error messages.# Exit

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Essentials of Database Management

Authors: Jeffrey A. Hoffer, Heikki Topi, Ramesh Venkataraman

1st edition

133405680, 9780133547702 , 978-0133405682

More Books

Students also viewed these Databases questions