Alumno: Alumno: Grupo: Sesión VI Saltos condicionales El objetivo de esta sesión es comprobar y practicar lo estudiado en teorı́a acerca de los saltos condicionales y las instrucciones relacionadas con estos como la slt. 1. Teniendo en cuenta la regla siguiente, tres segmentos sA, sB y sC de longitudes A, B y C respectivamente, pueden formar un triángulo si y sólo si se cumplen simultáneamente las siguientes desigualdades: A<B+C B <A+C C <A+B elabora una subrutina que determine si tres segmentos dados (que se introducen en el segmento de datos como A, B y C) pueden constituir un triángulo. El comienzo del programa es como sigue, completalo con la subrutina y la impresión por pantalla de la respuesta (desde el programa principal). Observa que los parámetros que se le pasan a la subrutina son: $a0=A, $a1=B, $a2=C, los lados del posible triángulo. No olvides incluir un segmento de datos con los valores asociados a las etiquetas A, B y C. # programa triangulo.s # # segmento de texto .text .globl main main: la $a0,A lw $a0,0($a0) # la direccion de la etiqueta A en a0 # el contenido de A en a0 la $a1,B lw $a1,0($a1) # la direccion de la etiqueta B en a1 # el contenido de B en a1 la $a2,C lw $a2,0($a2) # la direccion de la etiqueta C en a2 # el contenido de C en a2 jal triangulo ... Contesta a las siguientes cuestiones : ¿Cuántas etiquetas has utilizado dentro de la subrutina (contando la de comienzo de subrutina)? ¿Para que sirven las etiquetas? ¿A qué dirección apunta cada una de tus etiquetas? Indı́calo una a una. ¿Cuántos saltos condicionales has necesitado dentro de la subrutina? ¿En cuántos de ellos has necesitado previamente una instrucción slt? ¿Qué hace esta instrucción? Prueba el programa con un triangulo de lados A=4, B=8 y C=14. Ejecútalo paso a paso. ¿Cuántos saltos condicionales se evalúan realmente (en tu código) con este ejemplo? ¿En cuántos de ellos se salta a la etiqueta de destino? Prueba ahora el programa con un triangulo de lados A=14, B=8 y C=4. Ejecútalo paso a paso. ¿Cuántos saltos condicionales se evalúan realmente (en tu código) con este ejemplo? ¿Cúal es la codificación binaria una de las instrucciones bne de tu subrutina? ¿En qué campos se descompone? ¿Cuál era la etiqueta anterior? ¿A qué dirección de memoria se salta? ¿Cómo se hace la traducción de la etiqueta a la dirección destino de salto? Muéstralo para este ejemplo.