Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##Write a program that asks the user how many sets of 2 numbers they have (n).
- ##input n sets of 2 numbers.
- ##Output in how many sets the numbers were equal
- ## Implement a for loop with an iterator. Also, since there apparently isn't a "is exactly equal," I will need to implement a double condition of
- ## if not greater than, if not less than
- ## t0 = number of iterations the user wants, t1 = our internal increment counter, t2 = first number user enters
- ## t3 = second number user enters, t4 = the count of how many equal t2/t3 pairs there are
- .globl main
- .text
- main:
- li $v0, 4 #we're telling the program that we are going to be outputting a string and loading it immediately
- la $a0, first_prompt #we're telling the program where to look for our message that we defined at the bottom of the program
- syscall #go do it
- #now, we should read in an integer as done by the user, with syscall 5
- li $v0, 5 #syscall for code 5 (reading in an integer)
- syscall #go do it
- move $t0, $v0 #moving the stored integer from $v0 to $t0 this will be the number of times our loop executes
- #we now stored the value that the user input in $t0
- li $t1, 0 #we are storing the value 0 in $t1, which will be our incrementor; every time we complete the loop, we increase it by 1
- li $t4, 0 #this is going to be how many "equal" values there are
- #syscall #go do it
- ##at this point, we have determined how many sets of two integers the user will want. now we loop the input and "test if equal" step
- loop:
- li $v0, 4 #we're telling the program that we are going to be outputting a string and loading it immediately
- la $a0, second_prompt #we're telling the program where to look for our message that we defined at the bottom of the program
- syscall #go do it
- #now, we should read in an integer as done by the user, with syscall 5
- li $v0, 5 #syscall for code 5 (reading in an integer)
- syscall #go do it
- move $t2, $v0 #moving the stored integer from $v0 to $t0 this is our first input value
- #we now stored the value that the user input in $t3
- li $v0, 4 #we're telling the program that we are going to be outputting a string and loading it immediately
- la $a0, third_prompt #we're telling the program where to look for our message that we defined at the bottom of the program
- syscall #go do it
- #now, we should read in an integer as done by the user, with syscall 5
- li $v0, 5 #syscall for code 5 (reading in an integer)
- syscall #go do it
- move $t3, $v0 #moving the stored integer from $v0 to $t0 this is our second input value
- #we now stored the value that the user input in $t3
- ##for our conditional, we want to compare t2 and t3 for equality (by failing a greater than and less than test) and then incrementing t0,
- #and increment $t4 whenever the t2 and t3 are equal
- addi $t1, $t1, 1 #increment $t1 (our counter) by 1
- beq $t2, $t3, pass #go to pass, increase our "equality" counter and proceed
- beq $t0, $t1, fail #if the increment is equal to our initial user init, exit
- b loop
- pass:
- addi $t4, $t4, 1 #increment our "equals" variable by 1
- beq $t0, $t1, fail #if the increment is equal to our initial user init, exit
- b loop
- fail:
- li $v0, 4 #we're telling the program that we are going to be outputting a string and loading it immediately
- la $a0, exit_1 #we're telling the program where to look for our message that we defined at the bottom of the program
- syscall #go do it
- move $a0, $t4 #move the value stored $t0 to $a0
- li $v0, 1 #tell it we're about to print an integer
- syscall #go do it
- li $v0, 4 #we're telling the program that we are going to be outputting a string and loading it immediately
- la $a0, exit_2 #we're telling the program where to look for our message that we defined at the bottom of the program
- syscall #go do it
- li $v0, 10 #terminate the program
- syscall #go do it
- .data
- first_prompt:
- .asciiz "Please tell me how many sets of two integers you would like to compare: "
- second_prompt:
- .asciiz "\nPlease input your first number: "
- third_prompt:
- .asciiz "\nPlease input your second number: "
- exit_1:
- .asciiz "\nThere were "
- exit_2:
- .asciiz " entries that had equal values. The program is now terminating."
Advertisement
Add Comment
Please, Sign In to add comment