Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Exercises 1 and 2 -- Capitalization (2 versions) Declare a string in the data section such as: .data string: .asciiz in a hole in the

Exercises 1 and 2 -- Capitalization (2 versions)

Declare a string in the data section such as: .data

string: .asciiz "in a hole in the ground there lived a hobbit" Notice there are extra spaces in this string. Write an MIPS program that capitalizes the first letter of each word, so that after running your program the data will look like this: .data

string: .asciiz "In A Hole In The Ground There Lived A Hobbit" Easy version (exercise 1): assume that the data comprises only lower case characters and spaces. There may, however, be several spaces in a row (as in "the ground" above). Be sure to capitalize only the first letter of the words. Medium-hard version (exercise 2): Rewrite your program so that it assumes that the data comprises only upper and lower case characters and spaces, and alters a character only if it is lower case, and follows a space or is the first character on the line. For both versions, print the strings before and after translation by using the syscall print string service.

Here is my solution for exercise 1:

.text .globl main

main: li $v0, 4 # Print the original string. la $a0, string syscall

li $t0, 0 loop: lb $t1, string($t0) nop nop beqz $t1, end # if ($t1 == NULL) print the result nop nop bnez $t0, next # Check if first character is lower case nop nop blt $t1, 97, next2 # Convert from lower case to upper case nop nop bgt $t1, 122, next2 nop subu $t1, $t1, 32 sb $t1, string($t0) j loop

next: bne $t1, 32, next2 # if ($t1 == ' ') check for next character nop nop addiu $t0, $t0, 1 lb $t1, string($t0) nop nop blt $t1, 97, loop # Convert from lower case to upper case nop nop bgt $t1, 122, loop nop subu $t1, $t1, 32 sb $t1, string($t0)

next2: addiu $t0, $t0, 1 j loop

end: li $v0, 4 # Print a new line. la $a0, newline syscall

li $v0, 4 # Print the new string. la $a0, string syscall

li $v0, 10 # End the program. syscall

.data string: .asciiz "in a hole in the ground there lived a hobbit" newline: .asciiz " "

I'm not sure how to do exercise 2. Can someone help me out with that exercise?

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_2

Step: 3

blur-text-image_step3

Ace Your Homework with AI

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

Get Started

Students also viewed these Databases questions

Question

Explain the forces that influence how people handle conflict

Answered: 1 week ago