From bf8e88a7e826c689f4623d62b35df06c7189c495 Mon Sep 17 00:00:00 2001 From: Josh Ashton Date: Tue, 17 Oct 2023 18:42:59 -0600 Subject: [PATCH] branching to remove excess to narrow down problem --- src/a.out | Bin 21968 -> 0 bytes src/test/Fibonacci.asm | 40 ++++++++++++++++++++++++++++++++++++ src/util/functionAssigner.h | 3 ++- 3 files changed, 42 insertions(+), 1 deletion(-) delete mode 100755 src/a.out create mode 100644 src/test/Fibonacci.asm diff --git a/src/a.out b/src/a.out deleted file mode 100755 index 898b178d2a5adbbee05e1acf6979447aefd7e47c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21968 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 MG8$(&3>>WbPZMBnm;e9( diff --git a/src/test/Fibonacci.asm b/src/test/Fibonacci.asm new file mode 100644 index 0000000..8aa98fd --- /dev/null +++ b/src/test/Fibonacci.asm @@ -0,0 +1,40 @@ +.data + welcomeMessage: .asciiz "Welcome to a MIPS assembly Fibonacci Sequence calculator!\nThis will calculate the nth term of the Fibonacci Sequence.\n" + prompt: .asciiz "Enter a number (n, input n > 2) to find the nth term:" + foundTerm: .asciiz "The nth term is: " +.text +main: + li $v0, 4 # syscall 4 is to print a string + la $a0, welcomeMessage # store the ascii string in register a0 + syscall # print + jal getInput # get the user input + jal fibonacci # calculate the nth fibonacci term + move $a0, $v0 # move the returned term to register a0 + li $v0, 1 # syscall 1 is to print an int + syscall # print + ori $v0, $0, 10 # system call code 10 for exit + syscall # exit the program +getInput: + li $v0, 4 # syscall 4 is to print a string + la $a0, prompt # store the ascii string in register a0 + syscall # print + li $v0, 5 # syscall 5 is for reading an int + syscall # read an int from the user + move $a0, $v0 # load input into register a0 + jr $ra # return to caller +fibonacci: + move $s1, $a0 # Copy the nth term + li $t0, 2 # Counter + li $t1, 0 # Prev value + li $t2, 1 # Current value + li $t3, 0 # Next value + while: + bge $t0, $s1, done # While the counter is less than n + add $t3, $t1, $t2 # Sum the previous and current values and save in register t3 + move $t1, $t2 # Shift current value to previous value + move $t2, $t3 # Shift next value to current value + addi $t0, $t0, 1 # Increment counter + b while # Jump back to start of while loop + done: + move $v0, $t2 # Move current value to register v0 + jr $ra # Return to caller diff --git a/src/util/functionAssigner.h b/src/util/functionAssigner.h index cb1ec4c..3776408 100644 --- a/src/util/functionAssigner.h +++ b/src/util/functionAssigner.h @@ -2,7 +2,6 @@ FUNCTION(add) \ FUNCTION(jr) \ FUNCTION(syscall) \ - FUNCTION(li) \ FUNCTION(addu) \ FUNCTION(and) \ FUNCTION(nor) \ @@ -12,6 +11,8 @@ FUNCTION(sll) \ FUNCTION(srl) \ FUNCTION(addi) \ + FUNCTION(addiu) \ + FUNCTION(li) \ FUNCTION(sub) \ FUNCTION(subu) \ FUNCTION(jal) \