DEBERES
Primer Bimestre
Desarrollar un programa que permita determinar si los valores que se encuentran almacenados en tres localidades de la SRAM, etiquetadas como LADO1, LADO2 y LADO3, corresponden a las longitudes de los lados de un tringulo equiltero, issceles o escaleno. El resultado debe almacenarse en la SRAM a partir de la localidad etiquetada como RESPUESTA, en forma de una tabla de cdigos ASCII de uno de los siguientes textos: LOS LADOS CORRESPONDEN A UN TRIANGULO EQUILATERO LOS LADOS CORRESPONDEN A UN TRIANGULO ISOSCELES LOS LADOS CORRESPONDEN A UN TRIANGULO ESCALENO .nolist .include "m164pdef.inc" .list .def lado1=r16 .def lado2=r17 .def lado3=r18 .def aux=r19 .def cont=r21 .def tempo=r22 .def con1=r23 .def cont2=r24 .dseg .org 0x150 dato : .byte 51 .cseg ldi lado1,10 ldi lado2,2 ldi lado3,8 sts 0x100,lado1 sts 0x101,lado2 sts 0x102,lado3 ldi xl,low(dato) ldi xh,high(dato) ldi cont,51 ldi con1,48 ldi cont2,46 lazo: cp lado1,lado2 brcc lazo1 brne lazo2 lazo1: cp lado2,lado3 brcc equilatero brne isoceles lazo2: cp lado1,lado3 brcc isoceles brne lazo3 lazo3: cp lado2,lado3 brne escaleno
equilatero: ldi zh,high(texto1<<1) ldi zl,low(texto1<<1) esque: lpm tempo,z+ st x+,tempo dec cont brne esque rjmp fin
isoceles: ldi zh,high(texto2<<1) ldi zl,low(texto2<<1) isoc: lpm tempo,z+ st x+,tempo dec con1 brne isoc rjmp fin escaleno: ldi zh,high(texto3<<1) ldi zl,low(texto3<<1) esca: lpm tempo,z+ st x+,tempo dec cont2 brne esca rjmp fin fin : rjmp fin .org 0x120 texto1: .db "LOS LADOS CORRESPONDEN A UN TRIANGULO EQUILATERO" texto2: .db "LOS LADOS CORRESPONDEN A UN TRIANGULO ISOSCELES " texto3: .db "LOS LADOS CORRESPONDEN A UN TRIANGULO ESCALENO " A continuacin se muestran pantallas capturadas de la simulacin del programa con diferentes datos.