Practica 2 Acela
Practica 2 Acela
Practica 2 Acela
Redacte un resumen de los ciclos numéricos así como de los saltos, saltos condicionales,
incrementos, decrementos y comparaciones. Nota2: extensión mínima dos cuartillas.
Ciclos Numéricos
Un ciclo, conocido también como iteración, es la repetición de un proceso un cierto
número de veces hasta que alguna condición se cumpla.
En estos ciclos se utilizan los brincos "condicionales" basados en el estado de las banderas.
Los ciclos predefinidos de ensamblador son los siguientes:
LOOP:
Esta función decremento el valor del registro contador CX, si el valor contenido en CX es
cero ejecuta la siguiente instrucción, en caso contrario transfiere el control a la ubicación
definida por la etiqueta utilizada al momento de declarar el ciclo.
Ejemplo: mov cx, 25 : Número de veces que se repetirá el ciclo, en este caso 25. ciclo:
Etiqueta que se utilizará como referencia para el ciclo loop. int 21h: Instrucción contenida
dentro del ciclo (puede contener más de una instrucción). loop: Ciclo loop que transferirá el
control a la línea de la etiqueta ciclo en caso de que CX no sea cero.
LOOPE:
Esta función decremento el valor del registro contador CX, si el valor contenido en CX es
cero y ZF es diferente de uno ejecuta la siguiente instrucción, en caso contrario transfiere el
control a la ubicación definida por la etiqueta utilizada al momento de declarar el ciclo.
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
Ejemplo: ciclo: Etiqueta que se utilizará como referencia para el ciclo loope. int 21h:
Instrucción contenida dentro del ciclo (puede contener más de una instrucción). loope:
Ciclo loope que transferirá el control a la línea de la etiqueta ciclo en caso de que CX no
sea cero y ZF sea igual a uno.
LOOPNE:
Esta función decrementa el valor del registro contador CX, si el valor contenido en CX es
cero y ZF es diferente de cero ejecuta la siguiente instrucción, en caso contrario transfiere
el control a la ubicación definida por la etiqueta utilizada al momento de declarar el ciclo,
esta es la operación contraria a loope.
Ejemplo: ciclo: Etiqueta que se utilizará como referencia para el ciclo loopne. int 21h:
Instrucción contenida dentro del ciclo (puede contener más de una instrucción). loopne:
Ciclo loopne que transferirá el control a la línea de la etiqueta ciclo en caso de que CX no
sea cero y ZF sea igual a cero.
LOOPZ:
Esta función decrementa el valor del registro contador CX, si el valor contenido en CX es
cero y ZF es diferente de uno ejecuta la siguiente instrucción, en caso contrario transfiere el
control a la ubicación definida por la etiqueta utilizada al momento de declarar el ciclo.
Ejemplo: ciclo: Etiqueta que se utilizará como referencia para el ciclo loopz. int 21h:
Instrucción contenida dentro del ciclo (puede contener más de una instrucción). loopz:
Ciclo loopz que transferirá el control a la línea de la etiqueta ciclo en caso de que CX no
sea cero y ZF sea igual a uno.
LOOPNZ:
Esta función decrementa el valor del registro contador CX, si el valor contenido en CX es
cero y ZF es diferente de cero ejecuta la siguiente instrucción, en caso contrario transfiere
el control a la ubicación definida por la etiqueta utilizada al momento de declarar el ciclo,
esta es la operación contraria a loopz.
Ejemplo: ciclo: Etiqueta que se utilizará como referencia para el ciclo loopnz. int 21h:
Instrucción contenida dentro del ciclo. loopnz: Ciclo loopnz que transferirá el control a la
línea de la etiqueta ciclo en caso de que CX no sea cero y ZF sea igual a cero.
Saltos:
Instrucción De Salto Incondicional
La instrucción de salto incondicional hace que el control de flujo del programa salte
a la instrucción cuya dirección está especificada por su operando.
jmp dirección
La instrucción jmp hace que la ejecución del programa continué en la dirección
especificada por el operando.
Sintaxis:
jmp etiqueta
jmp regW|memW
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
jmp memDW
La dirección puede ser una etiqueta o estar en un registro o localidad de memoria. En el
caso de usar un registro o localidad de memoria de una palabra, el salto es a una
instrucción que se encuentra en el mismo segmento y el valor representa el
desplazamiento de la instrucción con respecto al segmento.
En el caso de que la dirección esté en una localidad de memoria de tipo palabra doble, el
salto es a otro segmento y el valor es el segmento: desplazamiento de la
instrucción.
La instrucción jmp no afecta a las banderas.
Tipo de salto.
Incremento
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
Decremento
La variable indicada es decrementada en 1. Cuando el valor original del Byte es 00H al
decrementarse pasará a 0FFFH y existirá un sobre flujo.
Ninguna otra bandera es afectada, Cuatro operandos de modos de direccionamiento son
permitidos: Acumulador, Registro directo o Registro indirecto.
Decrementa (resta 1 a) el contenido de un registro o de una posición de memoria.
Ejemplos:
DEC AX ; AX=AX-1
DEC DL ; DL=DL-1
DEC BYTE PTR ES:[DI+4] ; Decrem. byte contenido en ;
ES: DI+4
Función DUP Sintaxis: num DUP (valor)
Define en memoria la repetición de 'num' veces de 'valor'. El parámetro 'valor' puede ser un
valor entero, una cadena de caracteres entrecomillada u otro operador.
Ejemplos:
DB 20 DUP(100) ; Repetir 20 veces 100
DB 64 DUP('HOLA') ; Repetir 64 veces 'HOLA'
DB 256 DUP(?) ; Asignar 256 bytes indefinidos
Cuando el operando se encierra entre corchetes, indica "el contenido de memoria en", es
decir, que no se referencia a un valor sino a una posición de memoria. Normalmente, las
referencias a memoria se basan en el segmento DS, y se direcciona a través de una posición
predeterminada, o usando los registros BX, SI ó DI como punteros base que indican la
posición dentro del segmento.
1x0=0
1x1=1
1x2=2
En la Figura 1 se muestra el código fuente que se realizó para poder cumplir con el
objetivo.
Ilustración 1 código
En la Figura 2 se muestra la ejecución del programa nveces, donde nos pide ingresar el
numero en este se ingresó 5 y el mensaje se imprimió 5 veces.
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
Ilustración 2 ejecución
Programa 2 En la Figura 3 se muestra el código realizado para comparar 5 números que son
ingresados por el usuario.
En la siguiente figura podemos observar la ejecución del programa que muestra cual
número es la más alto.
Ilustración 6 cód. p2
Ilustración 7 ejecución.
Ilustración 11 ejecución.
Programa 5 Genere un programa que despliegue un ciclo infinitos de caracteres simulando
un efecto en cascada (Efecto Matrix).
Ilustración 14 código p1
Ilustración 15 código p2
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
Ilustración 16 código p3
Ilustración 17 código p4
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN
Ilustración 20 ejecución.
Nota final: La copia total o parcial de alguna práctica previamente entregada no será
recibida y afectara la calificación otorgada a la persona que entrego previamente. Sea
cuidadoso con sus reportes y productos de las actividades realizadas, evite pasarlos a sus
compañeros. Si se basan en algún ejemplo de libros o de internet es preciso referenciarlo y
hacer énfasis en las mejoras que usted género a dicho trabajo.