13
MICROPROCESADORES Alumna. Flor Taqui Wajuyat taqui.sistemasytelematica@gmail .com http:// direcciondeingeniria.blogspot.pe/ CICLOS Universidad Politécnica Amazónica

Ciclos

Embed Size (px)

Citation preview

Page 1: Ciclos

MICROPROCESADORES

Alumna. Flor Taqui Wajuyattaqui.sistemasytelematica@gmail

.comhttp://direcciondeingeniria.blogspot.pe/

CICLOS

Universidad Politécnica Amazónica

Page 2: Ciclos

CONTENIDO:• Definición

• Instrucciones Repetitivas LOOP

• Instrucciones Repetitivas LOOPE

• Instrucciones Repetitivas LOOPNE

• Instrucciones Repetitivas DEC

• Instrucciones Repetitivas INC

• Instrucciones Repetitivas WHILE

• Instrucciones Repetitivas DO WHILE

• Instrucciones Repetitivas FOR

• Instrucciones Repetitivas BREAK Y CONTINUE

• Ejemplos

Page 3: Ciclos

DefiniciónLos ciclos repetitivos también son llamados lazos o bucles que permiten repetir una operación o secuencia de operaciones en función de ciertas condiciones. Es un segmento de un algoritmo o programa cuyas instrucciones se repiten un número determinado de veces mientras se cumpla una determinada condición. Son estructuras que están especialmente diseñadas para todas aquellas aplicaciones en las cuales una operación o conjunto de ellas deben repetirse muchas veces.

Fases de un Programa Cíclico:• Entrada de datos e instrucciones previas

• Lazo o bucle

• Instrucciones finales o resto del proceso

• Salida de resultado.

Las estructuras de repetición básicas son: Estructura Desde/Para Estructura Mientras Estructura Hacer

Page 4: Ciclos

Instrucciones Repetitivas LOOP

La instrucción LOOP decrementa CX en 1, y transfiere el flujo del programa a la etiqueta dada como operando si CX es diferente a 1 Propósito: Generar un ciclo en el programa considerando el estado de ZF.

Page 5: Ciclos

Instrucciones Repetitivas LOOPE

Esta instrucción decrementa CX en 1. Si CX es diferente a cero y ZF es igual a 1, entonces el flujo del programa se transfiere a la etiqueta indicada como operando. Propósito: Generar un ciclo en el programa, considerando el estado de ZF.

Page 6: Ciclos

Instrucciones Repetitivas LOOPNE

Esta instrucción decrementa en uno a CX y transfiere el flujo del programa solo si ZF es diferente a 0. Propósito: Decrementar el operando.

Page 7: Ciclos

Instrucciones Repetitivas DEC

Esta operación resta 1 al operando destino y almacena el nuevo valor en el mismo operando. Propósito: Incrementar el operando.

Page 8: Ciclos

Instrucciones Repetitivas INC

La instrucción suma 1 al operando destino y guarda el resultado en el mismo operando destino.

Propósito: Comparar los operandos.

Page 9: Ciclos

Instrucciones Repetitivas WHILE

Es la estructura básica que permite repetir varias veces una secuencia de operaciones, mientras se cumpla una determina condición. Repetirá el bucle mientras la condición que contiene se verdadera; esto implica que, de alguna forma las instrucciones que componen la sentencia que ejecuta WHILE tienen que modificar la condición para que en algún momento llegue a ser falsa y el programa pueda continuar por la siguiente sentencia o bien romper el bucle implícitamente con break. De la misma forma se puede volver al principio del bucle con continúe.

Page 10: Ciclos

Instrucciones Repetitivas DO WHILE

Permite repetir una sentencia un número indeterminado de veces dependiendo de una condición, de forma parecida a while. 

Repetirá el bucle mientras la condición sea verdadera: al igual que while se tiene que modificar la condición para que en algún momento llegue a ser falsa y el programa pueda continuar por la sentencia siguiente a do while.

A diferencia de while, do while garantiza que al menos se ejecutará una iteracción.

Page 11: Ciclos

Instrucciones Repetitivas FOR

Se utiliza cuando se puede determinar el número de veces que hay que ejecutar las instrucciones.

Page 12: Ciclos

Instrucciones Repetitivas BREAK Y CONTINUEHay dos palabras reservadas que pueden ayudar a mejorar las estructuras repetitivas: break y continue. Break: Obliga a que el ciclo se rompa aunque la condición lógica no se haya cumplido. Continue: Obliga a que un ciclo vuelva a iterarse. Es preferible que se trate de evitar el uso de break a menos que sea absolutamente necesario, ya que puede causar conflictos y es difícil de debuggear.

Page 13: Ciclos

EJEMPLOSSumar la edad de 15 personas• Pseudocódigosuma=0k=0Mientras (k<10) hacerLeer: Edadsuma=suma+edadk=k+1Fin MientrasEscribir: suma • Assembler;INICIO.model small.stack 64.data ;DECLARACION DE VARIABLESedad db 0k    db 0suma dd 0

;DEFINIR MENSAJESmsg1 db 10,30 “Ingrese la Edad ::”, ’$’msg2 db 10,30 “La suma de edades es::,’$’ ;INICIALIZAR EL PROGRAMA.codebegin proc far mov ax;@datamov ds, ax ;PROCESO REPETITIVOmov k,0 CICLO:cmp k,15jae FINCICLO mov ah,09lea dx,msg1int 21hmov ah,01int 21hsub al,30hmov edad,aladd suma,al

inc kjmp CICLOFINCICLO

;MOSTRAR SUMA DE EDADESmov ah,09lea dx,msg2int 21hmov dl, sumaadd dl,30hmov ah,02int 21h ;FINALIZAR PROGRAMAmov ah,4chint 21h begin endpend