Question
##### Help!! The file assign2.asm holds a partial program. The purpose of the program is to read in a list of 10 integers and then
#####
Help!!
The file assign2.asm holds a partial program. The purpose of the program is to read in a list of 10 integers and then print them out. There are 4 functions in the program; 2 of which you are to complete. Main: This function will call getdata and print. Main is complete and should not be changed. Getdata: This function reads 10 integers and stores them into memory. There is one parameter ($a0) which holds the address of where the list of numbers is to be stored. Getdata calls the function printstr to print the prompt. Getdata is complete and should not be changed. Printstr: This function is to print a string. There is one parameter ($a0) which holds the address of the string to print. You are to complete this function so it performs as required. This function is call from the getdata function and the print function. Print: This function is to print the list of integers. The integers must all be on the same line of output and be separated by a comma and space (already in the data segment). See the example input and output below. This function must call the printstr function to print the comma string. Remember that as this function calls another, it must save and restore the $ra. Specifics: ? Use only the instructions covered to date. ? Do not use pseudo-instructions. See the information under MARS for preventing the use of pseudo-instructions. ? Make sure that your print function calls the printstr function correctly and that the stack is used correctly. Documentation: ? Comment the beginning of your programs with your name, class, and assignment number. ? Comment every instruction. Assignment submittal: ? Upload your assembly language program (.asm file) using this link on Blackboard. Hints on getting started: ? Load the assign2.asm file into the MARS simulator ? Write the code for printstr and make sure that it works correctly. ? Write the code for print. Sample input and output. Note there is no comma after the last number. Enter a number 1 Enter a number 2 Enter a number 9 Enter a number 11 Enter a number 99 Enter a number 12 Enter a number 24 Enter a number 90 Enter a number 17 Enter a number 82 1, 2, 9, 11, 99, 12, 24, 90, 7, 82
Modify the below code to complete the instructions above
--The code below gives an answer, but something is wrong. --Please do not use pseudo instructions.
.data .space 40 # set aside 40 bytes for 10 integers prompt: .asciiz "Enter a number " # address 0x10010028 comma: .asciiz ", " # address 0x10010038
.globl main .text main: lui $a0, 0x1001 # get start of data segment jal getdata # call getdata function lui $a0, 0x1001 # get start of data segment jal print # call print function end: ori $v0, $0, 10 # set command to exit syscall # end program # printstr # paramters: $a0 holds address of string to print # purpose: print the string parameter
printstr: ori $v0, $0, 4 #command to print string at $a0 syscall jr $ra #return from call getdata: addi $sp, $sp, -4 # allocate space on stack sw $ra, 0($sp) # save $ra ori $t1, $a0, 0 # address of array
lui $t1, 0x1001 #start of data ori $a0, $a0, 0x0028 # address of prompt ori $t0, $0, 10 # counter top: beq $t0, $0, ret # while not 0
jal printstr # call function to print prompt ori $v0, $0, 5 # set command to read integer syscall # read int sw $v0, 0($t1) # save int in memory addi $t1, $t1, 4 # increment to next location addi $t0, $t0, -1 # decrement counter j top # repeat ret: lw $ra, 0($sp) # restore return address addi $sp, $sp, 4 # clean up stack jr $ra # return from call # print # parameter: $a0 holds address of list in memory # purpose: print the list separated by commas
print: addi $t2, $t2, 10 jal loop loop: beq $t0, $t2, end lui $t3, 0x1001 or $a0, $0, $t3 ori $v0, $0, 1 syscall addi $t3, $t3, 4 ori $a0, $a0, 0x0038 ori $v0, $0, 4 #command to print string at $a0 syscall addi $t0, $t0, 1 j top
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started