☀️
MIPS Web Simulator
.data prompt_initial: .asciiz "Please select from the options above: " prompt_selection: .asciiz "\n1.Fibonacci | 2.Factorial | 3.Negative/Positive | 4.EXIT \n" prompt_fib: .asciiz "You have selected: Fibonacci. " prompt_fact: .asciiz "You have selected: Factorial. " prompt_nega: .asciiz "You have selected: Negative/Positive. " prompt_input: .asciiz "Please enter valid integer: " prompt_result: .asciiz "The result is: " prompt_negative_true: .asciiz "Negative." prompt_positive_true: .asciiz "Positive." prompt_zero_error: .asciiz "INVALID NUMBER." .text addi $t1, $zero, 1 # fib addi $t2, $zero, 2 # fact addi $t3, $zero, 3 # nega addi $t4, $zero, 4 # end j loop loop: ##### PROMPTS PRINTS ##### li $v0, 4 la $a0, prompt_selection syscall la $a0, prompt_initial syscall ##### READ INPUT ##### li $v0, 5 syscall add $t0, $v0, $zero ##### COMPARISON ##### beq $t0, $t1, fib beq $t0, $t2, fact beq $t0, $t3, nega beq $t0, $t4, end results: add $a1, $v0, $zero li $v0, 4 la $a0, prompt_result syscall li $v0, 1 add $a0, $a1, $zero syscall j loop end: li $v0, 10 syscall fib: li $v0, 4 la $a0, prompt_fib syscall la $a0, prompt_input syscall li $v0, 5 syscall add $a0, $v0, $zero jal fibonacci j results fibonacci: addi $sp, $sp, -12 sw $ra, 0($sp) sw $s0, 4($sp) sw $s1, 8($sp) add $s0, $a0, $zero beq $s0, $zero, result_0 beq $s0, $t1, result_1 addi $a0, $s0, -1 jal fibonacci add $s1, $zero, $v0 addi $a0, $s0, -2 jal fibonacci add $v0, $v0, $s1 exit_fib: lw $ra, 0($sp) lw $s0, 4($sp) lw $s1, 8($sp) addi $sp, $sp, 12 jr $ra result_0: li $v0, 0 j exit_fib result_1: li $v0, 1 j exit_fib fact: li $v0, 4 la $a0, prompt_fact syscall la $a0, prompt_input syscall li $v0, 5 syscall add $a0, $v0, $zero jal factorial j results factorial: addi $sp, $sp, -8 sw $ra, 4($sp) sw $a0, 0($sp) slti $t0, $a0, 1 beq $t0, $zero, exit_fact addi $v0, $zero, 1 addi $sp, $sp, 8 jr $ra exit_fact: addi $a0, $a0, -1 jal factorial lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, 8 mul $v0, $a0, $v0 jr $ra nega: li $v0, 4 la $a0, prompt_nega syscall la $a0, prompt_input syscall li $v0, 5 syscall add $a0, $v0, $zero beq $a0, $zero, zero_error jal negative j results negative: slt $a1, $a0, $zero beq $a1, $t1, negative_true li $v0, 4 la $a0, prompt_positive_true syscall j loop negative_true: li $v0, 4 la $a0, prompt_negative_true syscall j loop zero_error: li $v0, 4 la $a0, prompt_zero_error syscall j loop
Run All
Step
Reset
>
Registers
Register
Value
Hex
Memory
Address
Value
Hex