SALTOCONDICIONAL

10
UNIVERSIDAD POLITECNICA AMAZONICA TEMA: INTEGRANTES: CURSO: DOCENTE: SALTO CONDICIONAL MICROPROCESADORES MARCO AURELIO PERRO CHULLI SADY YUBITZA CHAVEZ CHAppa Sheylly natali Altamirano cordova

Transcript of SALTOCONDICIONAL

Page 1: SALTOCONDICIONAL

UNIVERSIDAD POLITECNICA AMAZONICA

TEMA:

INTEGRANTES:

CURSO:

DOCENTE:

SALTO CONDICIONAL

MICROPROCESADORES

MARCO AURELIO PERRO CHULLI

SADY YUBITZA CHAVEZ CHAppaSheylly natali Altamirano cordova

Page 2: SALTOCONDICIONAL

Salto condicional

Un salto es una interrupción del flujo normal de las instrucciones, haciendo que el procesador continúe en otro punto del programa ("salta" a otra parte del programa). Un salto condicional es una instrucción (más bien una familia de instrucciones) que realiza el salto si se cumple una condición determinada con anterioridad. El problema es que el procesador no sabe si se realizará el salto o no hasta que se evalúa la condición y si esto ocurre en la mitad del pipeline, es posible que tenga que borrar el pipeline y comenzar de nuevo en el nuevo punto de ejecución, perdiendo tiempo y trabajo.

Page 3: SALTOCONDICIONAL

INSTRUCCIONES DE LOS SALTOS

Page 4: SALTOCONDICIONAL
Page 5: SALTOCONDICIONAL
Page 6: SALTOCONDICIONAL

EJEMPLOS

Ejemplo de salto incondicional directo:

addl %eax, %ebxjmp etiq1 # salto incondicional a etiq1subl %edx, %ebxetiq1: addl %edx, %ebx

En este caso la tercera instrucción no se ejecuta ya que al ejecutarse el salto el programa pasa a ejecutar la instrucción 4.

Page 7: SALTOCONDICIONAL

movl valor1, %eax # %eax=valor1movl valor2, %ebx # %ebx=valor2cmpl %ebx, %eax# compara valor1 con valor2jl menor # si valor1 < valor2 salta a etiq1subl $5,%eax # si valor1 >= valor2 resta 5 a %eaxjmp fin # salta a finmenor: addl $5,%eax # si valor1 < valor2 suma 5 a %eaxfin:

Page 8: SALTOCONDICIONAL

Programa que calcula la expresión x=(a+(b-c))/(c*d) dados los valores a=4, b=5, c=2, d=7 declarados en la sección de datos# Programa que calcula x=(a+(b-c))/(c*d).section .dataa: .long 4b: .long 5c: .long 2d: .long 7x: .long 0 .section .text.globl _start_start:

movl b, %eax # %eax=bsubl c, %eax # %eax=b-caddl a, %eax # %eax=(b-c)+amovl c, %ecx # %ecx=cimull d, %ecx # %ecx=c*dcltd # %edx=0idivl %ecx # %eax=((b-c)+a)/(c*d)

%edx=restomovl %eax, x # guarda el resultado en x

 movl $1, %eax # fin del programamovl $0, %ebxint $0x80

Page 9: SALTOCONDICIONAL

Identificar el conjunto de instrucciones que implementan la estructura de salto condicional 

Para facilitar la programación, el lenguaje ensamblador del MIPS aporta un conjunto de pseudoinstrucciones de salto condicional que permiten comparar dos variables almacenadas en registros (a nivel de mayor, mayor o igual, menor, menor o igual) y según el resultado de esa comparación saltan o no, a la instrucción referenciada a través de la etiqueta.

CONCLUSION

Page 10: SALTOCONDICIONAL