main: # Args: # Returns: # - # # Locals: # - # # Stack: [] # Uses: [] # Clobbers: [] # # Structure: # -> main # -> [prologue] # -> [body] # -> [epilogue] main__prologue: main__body: li $v0, 5 # syscall 5: read_int syscall # # TODO: where do we put the result of this syscall? # TODO: call factorial, and put the result somewhere useful li $v0, 1 # syscall 1: print_int # TODO: where do we print from? syscall # printf("%d", input); li $v0, 4 # syscall 4: print_string la $a0, main__result_msg # syscall # printf("!= "); li $v0, 1 # syscall 1: print_int move $a0, $t0 # syscall # printf("%d", f); li $v0, 11 # syscall 11: print_char li $a0, '\n' # syscall # putchar('\n'); main__epilogue: li $v0, 0 # jr $ra # return 0; factorial: # Args: # Returns: # - # # Locals: # - # # Stack: [] # Uses: [] # Clobbers: [] # # Structure: # -> main # -> [prologue] # -> [body] # -> [epilogue] factorial__prologue: factorial__body: factorial__epilogue: jr $ra .data main__result_msg: .asciiz "! = "