Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 7
Facultad de ingeniería, Unam
Laboratorio de Microcomputadoras Semestre 2023-2
Previo practica 2 Programación en ensamblador direccionamiento indirecto Grupo: 10
Nombre del alumno:
Angeles Estrada Ricardo Crisantos Martínez Diego Jair Profesor: Ing. Román V. Osorio Comparan
Fecha de entrega:09/03/2023 Calificación:
1.- Escribir, comentar y ejecutar la simulación del siguiente programa: PROCESSOR 16f877 INCLUDE <p16f877.inc> ORG 0 GOTO INICIO ORG 5 INICIO: BCF STATUS,RP1 BSF STATUS,RP0 MOVLW 0X20 MOVWF FSR LOOP: MOVLW 0X5F MOVWF INDF INCF FSR BTFSS FSR,6 GOTO LOOP GOTO $ END a. Describir el funcionamiento. Ejercicio 1: El programa se encarga de cargar en W la dirección 20 para luego asignarle esta a FSR y de esta forma saber cuando se llegue a la dirección 40 y salir de un loop. Dentro del loop lo que se hace es cargar el valor 0x5F en el registro W para este irlo guardando en cada una de las direcciones disponibles entre 20 y 3F aparte de que cada que pasa el loop se usa la instrucción INCF para incrementar el fsr y cambiar la dirección a la que se esta apuntando. Ejercicio 2 2.- Elaborar un programa que encuentre el número menor, de un conjunto de datos ubicados entre las localidades de memoria 0x20 a 0X3F; mostrar el valor en la dirección 40H. Ejemplo: El programa carga el valor de FF en la dirección 40 con el nombre K esto debido a que es el valor mas grande que podemos ingresar y de esta forma empezar a comparar en base a este numero, después de esto hacemos lo mismo que en el ejercicio 1 para poder cambiar de dirección haciendo uso de FSR , En nuestro loop empezamos revisando que no FSR no este en la dirección 40 y si no lo esta deberemos restar w al valor de K y guardando el resultado en INDF gracias a esta resta sabremos si se modifica el carry que nuestro valor es menor por lo que nos moveremos a esta parte del código donded únicamente cargaremos el contenido de INDF en w y lo guardaremos en K para posteriormente incrementar la dirección de FSR en 1 y volveremos al loop. En caso de que este resulte ser mayor únicamente aumentaremos el valor de la dirección en FSR y cargaremos el contenido de K en W. Ahora como vimos el valor de W cada vez que el numero es menor se mantendrá en k por lo que el valor menor contenido en nuestras direcciones quedara almacenado en este. Ejercicio 3: 3.- Desarrollar el algoritmo y el programa que ordene de manera ascendente un conjunto de datos ubicados en el banco 0 del registro 0X20 al 0X2F. Ejemplo: El programa sigue el funcionamiento principal del ejercicio 2 para verificar que numero es menor solo que para reducir el numero de dirección en BTFSC del FSR se cambio a 4 para aceptar un “renglón” menos de direcciones. En el caso de conocer que nuestro numero es menor entraremos a Cambio donde asignaremos el numero menor a la posición de nuestro numero mayor y regresaremos al loop en caso de sea mayor únicamente lo compararemos con el siguiente guardándolo en K. Una vez terminemos una vuelta iremos a reinicia que solo se encarga de revisar si el programa ya termina o si va a ir a loop2 en este caso es como si iniciáramos el programa de nuevo pero manteniendo los cambios.