Está en la página 1de 6

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA ELÉCTRICA


Y ELECTRÓNICA

LABORATORIO DE
SISTEMAS MICROPROCESADOS

INFORME

Práctica No: 5

Tema: INSTRUCCIONES DE SALTO, LAZOS DE REPETICIÓN

Y CREACIÓN DE TABLAS DE DATOS EN LA FLASH.

Grupo: 5

Realizado por: Leslie Cabascango

Fecha de Entrega: 14-12-2016


Semestre 2016B
INFORME N. 5

1. TEMA: Utilización de las herramientas de simulación del PROTEUS con los microcontroladores
ATmega164P

2. OBJETIVO: Familiarizar al estudiante con las herramientas existentes para la simulación gráfica
de Sistemas Microprocesados con el paquete de software PROTEUS.

3. INFORME

3. 1 Presentar los resultados de las comprobaciones mediante capturas de pantallas.


RESULTADOS

1. Si el primer número ingresado es el mayor de los tres.

2. Si el segundo número ingresado es el mayor.

3. Si el tercer número ingresado es el mayor.


3.2 Escribir los cambios que se debe realizar en el programa, si los números que se comparan
son de más de 8 bits.

Para poder comparar números con más de 8 bits se deberá definir dos registros para cada
número, teniendo:

Para comparar se realizará con los primeros 8 bits de cada registro y posteriormente con los 8
siguientes bits de cada registro pero estos tienen carry, teniendo:

También se debe dejar un espacio de 16bits en la SRAM lo que sería (.byte 2). Y con el resto de
lazos de comparación se seguirá con la misma lógica aumentando la comparación con los nuevos
registros.
3.3 Presentar adicionalmente lo que el instructor solicite.
/*
* informe5.asm
*
* Created: 11/12/2016 22:26:43
* Author: Leslie
*/

.include "m164pdef.inc"
.dseg
Mensaje: .byte 15 ;Se reserva espacio asignado a MENSAJE

.cseg ;comienza el segmento del código


.org 0x00 ;Inicio del programa
.def conta=r20

inicio:
.def cod1=r16
.def cod2=r17
ldi cod1,1 ;asignamos cero a numero1
ldi cod2,'*'
ldi xh, high(Mensaje)
ldi xl, low(Mensaje)

/*out ddra,cod1
/*com cod1 ;complem*/
/*out porta,cod1 */;escribe el 0 en el puertoA*/
in cod1,pina ;lee el puerto A
/*sbis pina,0*/ ;salta si se tiene 0 en el puerto
cpi cod1,1
breq nombre1
rjmp nombre2

nombre1:
ldi zl,low(tabla1<<1)
ldi zh,high(tabla1<<1) ; Inicia el puntero Z con la direccion del texto1
call comparacion ;llama subrutina comparacion
rjmp fin

nombre2:
ldi zl,low(tabla2<<1)
ldi zh,high(tabla2<<1) ; Inicia el puntero Z con la direccion del texto2
call comparacion ;llama subrutina comparacion
rjmp fin

comparacion:
ldi conta,15
lpm r18,z+ ;carga una constante desde el pregrama, la memoria
apuntada por Z
cp r18,cod2 ;comparacion entre el el valor del puntero z y el
asterisco
breq fin ;si es igual va al final
st x+,r18 ;almacena el valor de z en x con un postincremento
brne comparacion ;si Z=0 regresa a comparacion
ret ;retorno de subrutina

fin: rjmp fin

tabla1: .db "LESLIE*"


tabla2: .db "ANDRES*"
4. Conclusiones:

 Las instrucciones de salto son herramientas muy importantes y útiles en la programación,


estas nos permiten realizar “saltos” desde un conjunto de instrucciones a otro si se ha
cumplido una determinada condición.
 Toda información ingresada en cualquier tipo de tabla se dará de manera manual, y esta
se guardará en la memoria FLASH. Se conoce que la información en la memoria FLASH se
forman como arreglos de 16bits, por lo que al ingresar una tabla se guardará desde los bits
menos significativos a los más significativos, por lo que es recomendable llenar o ingresar
la tabla en pares de información lo que serpia llenar los 16 bits por vez.

5. Referencias:

Apuntes Sistemas Microprocesados, Ing. Sebastian Jaramillo