### lab05.asm - Arithmetic and Logical Operations II ### Nome 1 - Matricula 1 ### Nome 2 - Matricula 2 ### ------------------------------------------------------------------- ### ------------------------------------------------------------------- ### Area de Dados ### ------------------------------------------------------------------- .data get_v1: .asciiz "Enter the first value: " get_v2: .asciiz "Enter the second value: " put_res: .asciiz "The first value times the second value is equal " ### ------------------------------------------------------------------ ### Area de Codigo ### ------------------------------------------------------------------ .text .globl main main: addiu $sp, $sp, -4 sw $ra, 0($sp) la $a0, get_v1 li $v0, 4 syscall li $v0, 5 syscall move $s0, $v0 la $a0, get_v2 li $v0, 4 syscall li $v0, 5 syscall move $s1, $v0 # ------------------------------------------------ # Implemente o algoritmo de deteccao de overflow aqui # Utilize os registradores $s2 = $s0 */+ $s1 # Fim da implementacao --------------------------- la $a0, put_res li $v0, 4 syscall move $a0, $s2 jal print_int lw $ra, 0($sp) addiu $sp, $sp, 4 jr $ra ### ------------------------------------------------------------------ ### Funcao para imprimir elemento na tela ### ------------------------------------------------------------------ .data .globl newline newline: .asciiz "\n" .globl comma comma: .asciiz "," .text .globl print_cmd print_cmd: beq $a0, $zero, F0 li $v0, 1 syscall li $v0, 4 la $a0 comma syscall jr $ra F0:li $v0, 4 la $a0 newline syscall jr $ra .globl print_int print_int: li $v0, 1 syscall li $v0, 4 la $a0 newline syscall jr $ra .globl print_string print_string: li $v0, 4 syscall jr $ra