Beruflich Dokumente
Kultur Dokumente
PREPARATORIO DE:
Sistemas Microprocesados
Realizado Por:
Alumno: Luis Oleas Grupo: MICG10-2
(Espacio Reservado)
Sanción: ___________________________________________________________________
Periodo:
2014 - A
PRÁCTICA No. 5
Objetivo:
Desarrollar programas para resolver problemas utilizando lazos de repetición, tomando en
cuenta que se producen casos diferentes; por lo que se recurre al uso de instrucciones que
producen bifurcaciones en el programa.
Preparatorio
Hacer un resumen de las directivas del ASSEMBLER que crean tablas de datos en la
memoria de programa.
Cuando el contenido del primer registro es mayor que el contenido del segundo registro, se ve
afectada la bandera Z por la ejecución de la instrucción.
En la memoria SRAM se deben reservar cuatro espacios de memoria de acuerdo al siguiente detalle:
Tres localidades de 1 byte cada una a los que se les asigna los nombres PUNTAJE1, PUNTAJE2 y
PUNTAJE3, y se debe reservar un espacio adicional llamado GANADOR de un número de bytes
correspondiente a todas las letras del nombre más extenso de los integrantes del grupo, incluidos
los espacios en blanco. Por ejemplo si ese nombre fuera; JUAN JOSE FLORES DELGADO, se deberían
dejar 24 bytes.
Escribir un programa que copie el contenido de las localidades de SRAM : PUNTAJE1, PUNTAJE2 y
PUNTAJE3 a tres registros diferentes. Luego debe proceder a comparar estos registros, de forma
que se determine cuál de los tres puntajes es el más alto( asumir que siempre los tres puntajes van
a ser diferentes). De acuerdo al resultado de la acción anterior se debe copiar hacia el espacio
GANADOR dejado en SRAM uno de los nombres que se deben crear como tablas en la memoria
FLASH, de acuerdo al siguiente detalle:
Si el PUNTAJE1 es el mayor, el texto a copiar es el Nº 1,
Si el PUNTAJE2 es el mayor, el texto a copiar es el Nº 2,
Si el PUNTAJE3 es el mayor, el texto a copiar es el Nº 3,
(Recordar que se asume que siempre los tres puntajes van a ser diferentes)
Los textos a los que se hace mención deben ser creados como tablas en la memoria FLASH luego de
la última instrucción de su programa. Los textos son los nombres completos de los integrantes del
grupo, y deben tener la misma longitud (la longitud del nombre completo más largo de entre los
integrantes). Para los nombres más cortos se deben poner espacios en blanco al final. Si el grupo
solo tiene dos integrantes poner cualquier nombre como texto 3.
.nolist
.list
.equ datos = 41 ;
Asigna el valor a una etiqueta
.def valor = r16 ;
Define la variable val en el registro 16
.def zona1 = R17 ;
Define la variable zon1 en el registro 17
.def zona2 = R18 ;
Define la variable val en el registro 18
.def aux = R19 ; Define la variable val en el registro 19
.def conta = R20 ; Define la variable val en el registro 20
.dseg
; Inicia un segmento de datos
dato1: .byte 1 ; Reserva un byte para la dato 1
dato2: .byte 1 ; Reserva un byte para la dato 2
dato3: .byte 1 ; Reserva un byte para la dato 3
.ORG 0X32A
mensaje: .byte 41 ; Reserva un byte para la mensaje
mensaj2:
otro2:
mensaj3:
ldi xl,low(mensaje)
ldi xh,high(mensaje)
ldi zl,(mensa3<<1)
ldi zh,high(mensa3<<1)
ldi conta,(ftbl3-mensa3)*2
otro3:
lpm aux,z+
st x+,aux
dec conta
brne otro3
rjmp fin
mensaj1:
ldi xl,low(mensaje)
ldi xh,high(mensaje)
ldi zl,(mensa1<<1)
ldi zh,high(mensa1<<1)
ldi conta,(ftbl1-mensa1)*2
otro1:
lpm aux,z+
st x+,aux
dec conta
brne otro1
BIBLIOGRAFIA: