Está en la página 1de 3

Laboratorio #1

Título: Memoria Técnica de la división de 23 entre 19 y su muestra en pantalla


Asignatura: Arquitectura de Ordenadores
Docente: Ing. Eduardo Suarez
Carrera: Ingeniería en Informática
Fecha: 16/04/2019
Hemisemestre:2019-2019
Facultad: Facultad de Ingeniería, Ciencias Físicas y Matemáticas
Universidad: Universidad Central del Ecuador
Estudiantes: Rosero Pérez Julián Alejandro
Pujota Cacuango Cristian Fernando

Enunciado:
Realizar un algoritmo que muestre en pantalla la división de los números 23 entre 19 y
dicho resultado se muestre en pantalla con sus decimales indefinidamente.

Explicación del Programa:


El programa divide los números 23 entre 19 por lo que procederemos a explicar el
algoritmo de división con el cual nos vamos a manejar:

23 19
40 1,21..
20
Como observamos, después de dividir el primer número el segundo ya no se puede
dividir por lo que aumentamos un 0 esto quiero decir que:

Residuo= 4 x 10=40

 Por lo que el nuevo residuo ya seria divisible para 19, una vez sabemos esto
procedemos a declarar nuestras variables para su utilización.
Las variables a utilizar en nuestro algoritmo de división serian:
Num1(Dividendo) , Num2(Divisor), Cociente, Residuo(res) y los respectivos
mensajes para mostrar en pantalla que se nombraron como “msg”.
 Haremos uso de los diferentes comandos en código ascii y las funciones de la
interrupción 21 y 16 en la cual nombraremos en el código en forma de comentario.

Modo de uso del programa:


Al comienzo del programa nos muestra un título con datos iniciales.
A continuación, iniciaremos nuestro programa y observamos que la división se efectúa
correctamente, esta se ejecutara indefinidamente hasta que el residuo sea cero, en nuestro
caso el residuo nunca será cero por lo que la división no finalizara en la parte decimal.

Código en Ensamblador y la explicación de sus funciones:

- Algoritmo para dividir dos números

;********************algoritmo para la división


division:
div bl
add al,30h ;suma de 30h para que se muestre el numero el decimal
mov cociente,al ;guardado del cociente en la variable cociente
mov res,ah ;guardado del residuo en la variable res
mov dx, offset cociente ;direcciona el entero
call imprime
mov coma, 2Ch
mov dx, offset coma ;direcciona la coma del resultado
call imprime
;****************algoritmo para dividir el residuo y obtener los decimales
decimal:
mov al, 0Ah
mov bl, res
mul bl ;multiplicación del residuo por 10 para convertirlo en entero y volver a dividirlo
mov bl, 13h
div bl ;división del residuo ajustado para obtener el decimal siguiente
mov res,ah
add al, 30h ; suma de 30h para obtener el numero el decimal
mov cociente,al
mov dx, offset cociente ;direcciona el decimal
call imprime ;llamada del proceso para impresión
cmp res, 0h ;comparación del residuo para que se detenga cuando sea 0
je salir ;si se cumple se ejecuta el proceso salir
jmp decimal ;de lo contrario se repite el proceso para calcular el decimal
salir:
ret
Capturas del Programa funcionando:

(Programa imprimiendo los decimales, tiempo transcurrido= 1minuto)

(Programa imprimiendo los decimales a punto de llenar la ventana , tiempo transcurrido = 3 minutos)
(Cuando llega a completar la pantalla y maximizamos la impresión de números se congela , una vez
minimizado de nuevo la pantalla éste recobra la impresión pero con vacíos de cuando se congelo la
pantalla al maximizar).