EJERCICIOS RESUELTOS DE ALGORITMOSFull description
ELECTRODescripción completa
Descripción completa
Descripción completa
AruquitecturaDescripción completa
llDescripción completa
Descripción: física III
laboratorio 3 tecsupDescripción completa
Display 2x16Descripción completa
Descripción: para los que saben de IE
laboDescripción completa
comunicaciones digitales
lab
Descripción completa
Descripción: el labo de fisica 3 de la UNI
Informe de Química BasicaDescripción completa
Laboratorio 3
Tutor Wilson Pérez Alexander Villamil Poveda 80777388
301302_45
Mayo 6 de 2018. Arquitectura de Computadores UNAD Universidad Nacional Abierta y a Distancia. Bogotá DC.
Introducción Este documento reúne las evidencias del manejo del programa MSX88, SE REALIZAN, 3 secciones en las cuales se aumenta el conocimiento del programa y se inicia en el campo de la programación del lenguaje ensamblador.
Sección 1:
1. Escribir un programa que realice la suma de dos datos (el 25h y el 30h) que se encuentran en los registros AX y DX del procesador. El resultado lo almacenará en AX. Guardar el código con el nombre Programa.asm. Seguir los pasos descritos en el laboratorio 2 para ensamblar, enlazar y ejecutar el programa. Creo el Programa.ASM en un block de notas PROG8
Ensamblamos el archivo anterior para ello en la linea de ordenes teclear ASM88.
Enlazamos el archivo PROG8 creado desde la linea de ordenes escribimos LINK88.
Ejecutamos el programa MSX88 para ello escribir en la linea de ordenes MSX88.
Se carga el programa el apuntador IP queda cargado con el valor 20 00 que es la direccion inicio del programa ORG 2000h, tambien las direcciones de memoria 2001(25) y 2004(30) almacenan los valores que van a ser sumados.
Nuevamente el apuntador IP se incrementa a 2002 y se ejecuta cada ciclo de instrucción el secuenciador traslada el dato BAH al buffer de datos IR para su decodificacion como instrucción MOV el secuenciador por micoordenes incrementa al apuntador IP a 2002
La ALU realiza el calculo de la suma y obtiene le resultado el cual se almacena en AX
Sección 2:
Diseñar dos programas con las siguientes condiciones: 1. Escribir un programa que realice la multiplicación de dos números. Realizar la ejecución de Ciclo de instrucción a Ciclo de instrucción (F6). Documentarlo tal como aparece en el anexo 1, escribiendo lo sucedido por cada ciclo de instrucción hasta su resultado. Mostrando posiciones de memoria igualmente. Creo el Programa.ASM en un block de notas PROG9
Ensamblamos el archivo anterior para ello en la linea de ordenes teclear ASM88.
Enlazamos el archivo PROG9 creado desde la linea de ordenes escribimos LINK88.
Ejecutamos el programa MSX88 para ello escribir en la linea de ordenes MSX88.
CARGAMOS EL VALOR DE AX
CARGAMOS EL VALOR DE BX
CARGAMOS EL VALOR DE CX
Se ejecuta nuevamente el decremento de BX y esta vex llega a cero por lo que la bandera Z se activa
ALU finaliza el calculo y termina el programa.
2. Escribir un programa que realice la división de dos números. Realizar la ejecución de Ciclo de instrucción a Ciclo de instrucción. Documentarlo tal como aparece en el anexo 1, escribiendo lo sucedido por cada ciclo de instrucción hasta su resultado. Mostrando posiciones de memoria igualmente. Creo el Programa.ASM en un block de notas PROG10
Ensamblamos el archivo anterior para ello en la linea de ordenes teclear ASM88.
Enlazamos el archivo PROG10 creado desde la linea de ordenes escribimos LINK88.
Ejecutamos el programa MSX88 para ello escribir en la linea de ordenes MSX88.
Valores a los registros de AX y BX que son los que se van a dividir.
Se incrementa CX, se realiza la resta AX-BC y el resultado se almacena en AX, la bander Z se aciva dado el resultado de la operación =0
El programa termina y el resultado de la division nos queda almacenado en CX=2
Sección 3:
Diseñar un programa en ensamblador para MSX88 donde utilice Etiquetas y Comparaciones. Ver Anexo 2. Comparaciones_Etiquetas_Ensamblador El programa diseñado compara el valor de AX con el de BX, si AX es mayor carga el valor 50H al registro DX y termina y si el mayor es BX carga el valor 30H al registro CX y termina. Situacion 1; AX
Ensamblamos el archivo anterior para ello en la linea de ordenes teclear ASM88.
Enlazamos el archivo PROG6 creado desde la linea de ordenes escribimos LINK88.
Ejecutamos el programa Etiqueta MSX88 para ello escribir en la linea de ordenes MSX88.
Valores cargados en el registro AX y BX.
Se decodifica la instrucción de comparacion
Se activa la bandera S la cual indica que el resultado de la operación es un numero negativo.
Se codifica la instrucción de salto condicional si el resultado es un numero negativo JS
Mueve el valor 50H registro DX y el programa Termina
Situacion 2; AX>Bx
Creo el Programa.ASM en un block de notas PROG7
Ensamblamos el archivo anterior para ello en la linea de ordenes teclear ASM88.
Enlazamos el archivo PROG7 creado desde la linea de ordenes escribimos LINK88.
Ejecutamos el programa Etiqueta MSX88 para ello escribir en la linea de ordenes MSX88.
Valores cargados en el registro AX y BX
Se decofica la instrucción de comparacion CMP
Se decodifica la isntruccion de salto condicional si el resultado es un numero negativo JS. Al estar desactivada la bandera S el procesador NO salta a la direccion de la etiqueta MENOR, continua con la ejecucion.
Mueve el valor 30H al registro CX.
Mueve el valor 30h al registro CX y termina el programa
CONCLUSIONES
Aprendi el manejo del programa MSX88. La realizacion de la actividad me ayudo a comprender la forma correcta de crear un programa basado en el set de instrucciones con que trabaja el MSX88
BIBLIOGRAFÍA Nacional, I. P. (19 de 11 de 2017). Obtenido de http://acipn.blogspot.com.co/p/herramientas-titulo-descarga-simulador.html