Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Description: Assume your Howard ID as a decimal integer is X . Let N = 2 6 + ( X % 1 1 ) where

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. (IMPORTANT) I've asked this questions many times on here and the answers I get dont work so please can you give me a correct one

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_2

Step: 3

blur-text-image_3

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

Database Concepts

Authors: David M Kroenke, David J Auer

6th Edition

0132742926, 978-0132742924

More Books

Students also viewed these Databases questions

Question

What are the main objectives of Inventory ?

Answered: 1 week ago

Question

Explain the various inventory management techniques in detail.

Answered: 1 week ago

Question

Why do HCMSs exist? Do they change over time?

Answered: 1 week ago