Question

MIPS QUESTION This project will entail reading in a string of 4 characters into a variable...

MIPS QUESTION

This project will entail reading in a string of 4 characters into a variable (Beware if Endians). You must then take each individual character and load them into separate register ($t0-$t3). They then MUST be placed on the stack and then “popped off” in reverse order The resulting output should print the characters in reverse order.

Some things to note:

  1. Remember the Endians.
  2. When reading in a string, you must allocate an extra byte (5 instead of 4).
  3. FIFO
  4. For reading the string, use code 8 in $v0.

Some useful instructions:

lb, sll,sb, lb $t0,1($sp), , sb $t0,1($sp), addi $sp,$sp,1 and ), addi $sp,$sp,4

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Screenshot

--------------------------------------------------------------------------------------

Program

#Data declaration part
.data
   input: .asciiz "Enter a 4 letter string: "
   buff: .byte 5
#Program starts here
.text
     #Display prompt
     addi $v0,$0,4
     la $a0,input
     syscall
     #read string
     addi $v0,$0,8
     la $a0,buff
     addi $a1,$0,5
     syscall
     #Call method to reverse
     jal reverse
     #End of the program
     addi $v0,$0,10
     syscall
#Reverse function
reverse:
     #Allocate stack
     addi $sp,$sp,-16
    #store each characters into registers
     lbu $t0,($a0)
     lbu $t1,1($a0)
     lbu $t2,2($a0)
     lbu $t3,3($a0)
     #store each characters into stack
     sb $t0,($sp)
     sb $t1,4($sp)
     sb $t2,8($sp)
     sb $t3,12($sp)
     #For next line
     addi $v0,$0,11
     li $a0,10
     syscall
     #Pop in reverse order
     lbu $a0,12($sp)
    addi $v0,$0,11
     syscall
     lbu $a0,8($sp)
    addi $v0,$0,11
     syscall
     lbu $a0,4($sp)
     addi $v0,$0,11
     syscall
     lbu $a0,0($sp)
     addi $v0,$0,11
     syscall
     #de allocate stack
     addi $sp,$sp,16
     #return
     jr $ra
-----------------------------------------

Output

Enter a 4 letter string: HELL
LLEH
-- program is finished running --

Add a comment
Know the answer?
Add Answer to:
MIPS QUESTION This project will entail reading in a string of 4 characters into a variable...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • MIPS Insertion program.........I could really use some help ASAP

    I have this MIPS program and I'm having trouble with it. This program is user inputs numbers until zero and sorts and print the numbers in order. Please soove this issue. You can use any sorting algorithm except bubble sort.  Need it as soon as possible. Here is the code:.datanum: .word 0space: .byte ' ' .text main:  # la $t0, val # loads val into a register  # li $t1, 0      #keeps track of how many numbers entered  la $a0,...

  • im trying to complete mips program code about a calculator program that can calculate integer addition...

    im trying to complete mips program code about a calculator program that can calculate integer addition / subtraction written using the MIPS assembler. im having hard times to debug this. The input is given to the array of Formula char (base address $ s0) in the form of a formula. The null character (\ 0, ASCII code 0) is placed at the end. The calculation result is given to the register $ s1 and the overflow is ignored. For example,...

  • ASSEMBLY LANGUAGE (Mars MIPS) Starting code: Factorial: #Factorial Recursive function subu $sp, $sp, 4 sw $ra,...

    ASSEMBLY LANGUAGE (Mars MIPS) Starting code: Factorial: #Factorial Recursive function subu $sp, $sp, 4 sw $ra, 4($sp) # save the return address on stack beqz $a0, terminate # test for termination subu $sp, $sp, 4 # do not terminate yet sw $a0, 4($sp) # save the parameter sub $a0, $a0, 1 # will call with a smaller argument jal Factorial # after the termination condition is reached these lines # will be executed lw $t0, 4($sp) # the argument I...

  • Create a program that performs the following operations: 1. Prompt for and accept a string of...

    Create a program that performs the following operations: 1. Prompt for and accept a string of up to 80 characters from the user. • The memory buffer for this string is created by: buffer: .space 80 #create space for string input The syscall to place input into the buffer looks like: li $v0,8 # code for syscall read_string la $a0, buffer #tell syscall where the buffer is li $a1, 80 # tell syscall how big the buffer is syscall 2....

  • QT Spim question. Program and answer already given please explaine it. Please explain the reason why...

    QT Spim question. Program and answer already given please explaine it. Please explain the reason why each instruction was used throughout the program step by step given the prompt, what is its purpose to achive the goal asked in the prompt, why is written in that order. Please not just write to the side what each instruction means in words like load $t0 to $t1. I want to understand the program thoroughly. Thanks in advance Previous information needed to solve...

  • i need help with a mips program to to covert roman numerals to real numbers Lab 4: Roman Numeral Conversion Part A: Due...

    i need help with a mips program to to covert roman numerals to real numbers Lab 4: Roman Numeral Conversion Part A: Due Sunday, 19 May 2019, 11:59 PM Due Friday, 24 May 2019, 11:59 PM Part B: Minimum Submission Requirements Ensure that your Lab4 folder contains the following files (note the capitalization convention): o Diagram.pdf o Lab4. asm O README.txt Commit and push your repository Lab Objective In this lab, you will develop a more detailed understanding of how...

  • You will write the following files: mystack.h - contains the class definition for the mystack class....

    You will write the following files: mystack.h - contains the class definition for the mystack class. mystack.cpp - contains the definitions for member functions of the mystack class. inpost.cpp - contains your convert() function. inpost.h - contains the function prototype for convert() so that the main() can call it. Each of the files (with the exception of inpost.h) is described in more detail below. All header files should contain header guards to prevent them from being included multiple times in...

  • I NEED HELP WITH THIS HOMEWORK!!!! What is a characteristic of a bag data type? Elements...

    I NEED HELP WITH THIS HOMEWORK!!!! What is a characteristic of a bag data type? Elements are added and removed in any order Elements are removed in the same order they were added Distinct elements are added in any order but are removed beginning with the last one added Distinct elements are removed in the reverse order they were added Which scenario illustrates a data stack structure Standing in a line to be serviced Filing documents in alphabetical order Offering...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT