Previo 2

Descargar como pdf o txt
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.

También podría gustarte