Está en la página 1de 5

Universidad Nacional Autónoma de México

Facultad de Ingeniería

Lab. Microcomputadoras

Grupo 1

Equipo 3

Cuestionario Previo 2
Programación en ensamblador direccionamiento indirecto

Integrantes:
 Hernández Castañeda Kevin Reynaldo
 Jaime García Jesús
 Meza Vega Hugo Adrian
 Rivas Villaruel Frida Stephanie

Fecha de entrega: 10 de septiembre de 2021

Laboratorio de Microcomputadoras 2
1. Explique el modo de direccionamiento directo para los microcontroladores
PIC16F877A.

La posición de memoria con la que se trabaja viene directamente definida en el


código de la instrucción. La dirección a operar se obtiene completando la dirección
incluida en el código de la instrucción con los bits RP1:RP0 del registro STATUS.

2. Explique el modo de direccionamiento indirecto para los microcontroladores


PIC16F877A.

La posición de memoria con la que se trabaja viene definida por el contenido de el


registro FSR (Posición 04h, 84h, 104h o´ 184h), es decir, el registro FSR actúa
como puntero de la posición de memoria con la que se pretende operar. La
dirección se obtiene completando el contenido del registro FSR con el bit IRP del registro
STATUS.

3. Explique el funcionamiento de los registros FSR y INDF en el modo de


direccionamiento indirecto.

El INDF especifica el registro cuya dirección esta en el registro FSR. En otras


palabras, direcciones de registros se especifican en el registro FSR, y su contenido se
almacena en el registro INDF.

4. Para el siguiente código y utilizando MPLab:

Laboratorio de Microcomputadoras 3
a) Escriba en la venta de memoria RAM (File Registers) valores aleatorios desde la
localidad 0x20 hasta la localidad 0x40.
b) Ejecute el programa paso a paso (use el control “ANIMATE”)
*Incluya una imagen con la simulación del programa como evidencia.

5. Explique qué es lo que hace el programa.

Se carga W (W=0x20), posteriormente se pasa a FSR, y ahora el FSR apunta al registro


0x20, INDF también. Se borra el registro INDF, que en realidad es el registro 0x20
el que se pone en 00000000, se incrementa en uno el registro FSR, por lo que ahora
apunta a 0x21 al igual que INDF. Si el bit 4 no está en uno, regresa a siguiente y
borra INDF (se borra el contenido de 0x21) y se incrementa FSR (FSR = 0x22 = INDF), y
vuelve a preguntar, como la respuesta es no, borra INDF (0x22) y nuevamente incrementa
FSR, y así sucesivamente hasta que FSR llegue a 0x2F, en donde la respuesta a la
pregunta es si, y salta una línea para continuar con el flujo del programa.

Laboratorio de Microcomputadoras 4
6. ¿Por qué el programa no modifica los valores desde las localidades 0x30?

No modifica los valores de las localidades 0x30 porque lo que hace el programa es borrar el
contenido de la memoria RAM entre 0x20 - 0x2F utilizando direccionamiento indirecto, ya
que como se menciono en la pregunta anterior, cuando FSR llegue a 0x2F y la
respuestas a la pregunta sea si, se salta una línea para continuar con el flujo del programa,
en este caso vuelve a inicio y comienza nuevamente con la localidad 0x20.

Referencias
Universidad de Oviedo. (2021). Organización de la Memoria. Microcontroladores PIC:
Organización de la Memoria. https://www.unioviedo.es/ate/alberto/TEMA2-Memoria.pdf

Anónimo. (S.F). MANUAL DE MICROCONTROLADORES PIC. Septiembre 14, 2021, de


Unioviedo Sitio web: https://www.unioviedo.es/ate/alberto/manualPic.pdf

Anónimo. (2021). 3.2 Principales registros SFR. Septiembre 14, 2021, de MIKROE
Sitio web: https:// www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con-
ejemplos/principales-registros-sfr

Laboratorio de Microcomputadoras 5
Laboratorio de Microcomputadoras 6

También podría gustarte