Informe LAB1 Def
Informe LAB1 Def
Informe LAB1 Def
Práctica No.1
MOV Transfiere.
2. OBJETIVOS
IN Entrada.
OUT Salida.
LEA Carga la dirección efectiva.
PUSH FUENTE (sp) ← fuente.
INC Incrementar.
DEC Decrementar.
LOOP Realizar un bucle.
∞
35000(−1)n+1
x=∑ Ec.1
n=1 2n
5
n=∑ w i x i +b Ec.2
i=1
Variable Función
VECT1 Vector 1 de tamaño
Byte (5 posiciones)
VECT2 Vector 2 de tamaño
Byte (5 posiciones)
ALMACENA Almacena los dígitos
del número, (vector de
tamaño word)
RESM Almacena resultado
de la multiplicación
Xi*Yi
Mensaje_1 Despliega mensaje en
pantalla
MEN2 Despliega mensaje en
pantalla
Figura 3. [4] Interpretación geométrica del producto de
punto
MEN3 Despliega mensaje en
pantalla
Una vez que el concepto del producto punto es MEN4 Despliega mensaje en
claro, procedemos al diseño del diagrama de flujo pantalla
que será la base para obtener el pseudocódigo MEN5 Despliega mensaje en
necesario para este ejercicio. pantalla
PUNT Revisa si ya se
Antes de explicar la metodología utilizada para el digitaron los 5
desarrollo de la aplicación se tienen en cuenta las números del vector
PUNT_S variable que asigna
siguientes consideraciones: impresión en pantalla
- El tamaño de los vectores es de tipo Byte, por del producto punto
tanto, el máximo número tecleado por posición CONT_U Lleva la cuenta de las
del vector (5 posiciones) es 255. unidades del número a
- se trabajan con números positivos y el resultado imprimir
máximo es de 65535 CONT_D Lleva la cuenta de las
- con la tecla enter (en ASCII 13), se procede a decenas del número a
imprimir
digitar nuevo número hasta llegar a cinco números
CONT_C Lleva la cuenta de las
digitados.
centenas del número a
imprimir
En la figura 4 se puede observar el inicio del 6.1.1 Captura de números del vector 1:
código de la aplicación, el uso de las
diferentes interrupciones, además de la La función call load_digitos carga al vector
inicialización de la directiva .DATA en DS ALMACENA los dígitos tecleados (máximo tres
(segmento de datos) y ES (segmento extra). dígitos) por cada elemento del vector (cinco
posiciones del vector).
La captura de números al vector 2 se realiza de la Esta parte del código realiza la multiplicación del
misma manera como se realizó en el vector 1. vector 1 por el vector 2 (Xi*Yi), previamente
cargado los cinco números del vector 1 y vector 2.
La interrupción
RESM [ DI ]=[ SI ]∗[ SI+5 ],[SI +1]∗[SI +6], [SI+2]∗[SI + 7], INT 10h / AH = 02H me permite
posicionarme en la fila 10, columna cero y pagina
[SI +3]∗[ SI +8 ],[SI +4 ]∗[SI +9] Ec. 5
0 de la pantalla, para desplegar la cadena de
caracteres de la etiqueta MEN4 por medio de la
La ecuación 5 describe el proceso de interrupción 21h / AH = 09H.
multiplicación del vector 1 y 2 (Xi*Yi), que cada
resultado se almacena en el vector RESM.
Figura 13. Variables que almacenan los resultados El registro SI se incrementa en dos para acceder a
producto punto y multiplicaciones Xi*Yi. las diferentes posiciones del vector RESM, ahora
n+1
Figura 15. Código que imprime el resultado del Realiza la operación de SIGNO=(−1 )
producto de punto en la pantalla.
Esta operación la ejecuta multiplicando con la
Obtenido el resultado del producto punto funcion IMUL el registro AX *AB donde
almacenado en AX, se transfiere a la variable previamente se guardo (−1 ) y el resultado se
RESULT_SUM, y así obtener el número decimal guarda en AX, resta uno al contador CX con la
en pantalla por medio de la función call decodif funcion LOOP y compara si es cero, si aun no es
que se explicó anteriormente. cero vuelve a ejecutar la multiplicacion, el
resultado anterior AX por BX¿ (−1 ), cuando CX
El diagrama de flujo se puede observar en la
llega a cero el resultado se guarda en el registro
figura 37 de los anexos.
SIGNO=AX como se muestra en la figura 47 de
los anexos, donde SIGNO=(−1 ) para n=14
6.2. Cálculo de la suma
valor comprobado en tabla 3.
Esta operación la ejecuta dividiendo el registro Antes de explicar la metodología utilizada para el
AX en DENO donde previamente se guardo el desarrollo de la aplicación se tienen en cuenta las
dato 35000 en AX, siguientes consideraciones:
35000 - El tamaño de los vectores es de tipo Word, por
RTA PAR = =68 para n=9donde 44 en
512 tanto, el máximo número tecleado por posición
hexadecimal es 68 en decimal, en la figura 49 de del vector (5 posiciones) es 65535.
los anexos se puede observar dicho valor simulado - se trabajan con números positivos y el resultado
en el emulador 8086. máximo es de 65535
- con la tecla enter se procede a digitar nuevo
6.2.4 PARTE 4: Suma número hasta llegar a cinco números digitados.
- al digitar el termino b de la sumatoria, la
Realiza la operación: cantidad de dígitos máxima permitida es de
SUMA=SUMA+ SIGNO∗RTA PAR cuatro, ejemplo 1000.
Esta operación la ejecuta multiplicando con IMUL En la tabla 2 se puede observar las variables
el registro AX=RTA_PAR por SIGNO como se y arreglos que se utilizó para el desarrollo de
muestra en la figura 50 de los anexos, donde la aplicación
n=11 , AX=11H=17 en decimal valor
comprobado en la tabla 3, RTA_PAR=Resultado Variable Función
en N, este valor se suma al acumulado SUMA y VECTX Vector_X de
regresa a hacer todo el proceso si n no es cero, tamaño Word (5
cuando sea cero pasa a imprimir el resultado en posiciones)
VECTY Vector_Y de
pantalla y finaliza el programa como se puede
tamaño Word (5
observar en la figura 51 posiciones)
ALMACENA Almacena los
dígitos del número,
del producto punto, únicamente lo que cambia son digito se carga en la posición cero del vector
los tamaños de los vectores (vectores X y Y) que ALMACENA.
ahora son de tamaño word (16 bits) y la cantidad
de dígitos que se puede teclear por número es de se incrementa el registro BX donde vale cuatro,
cuatro. que es la cantidad máxima de dígitos por número.
El diagrama de flujo se puede observar en la
Se debe tener en cuenta que el vector figura 45 de los anexos
ALMACENA ahora guarda un digito más del
número tecleado, por tanto, se debe asignar a cero 6.3.3 Función Call num_dec:
la posición tres del vector ALMACENA (mov
ALMACENA[3],0) cuando se haya finalizado de Para obtener el número decimal de los dígitos
teclear el número. almacenados en el vector ALMACENA se realiza
El diagrama de flujo se puede observar en la el código de la figura 19.
figura 34 de los anexos
El cuarto mandato es
El quinto mandato es
9. Referencias
[3].
http://kipirvine.com/asm/debug/Debug_Tu
torial.pdf
[4].https://www.superprof.es/apuntes/escolar/
matematicas/analitica/vectores/producto-
punto.html