sábado, 4 de octubre de 2008

Suma de datos almacenados en memoria

;***************************************************************************************************
;***** PROGRAMA QUE SUMA UNOS DATOS Y LOS ALMACENA EN LA MEMORIA
;***************************************************************************************************
.include "m32def.inc" ;directiva que incluye los archivos del micro
.def temp=r16 ;directiva para definir un nombre smbolico para los registros

.def suma=r17 ;operandos los 32 registros de orden general r0-r31
;Por el momento haremos un programa muy básico para demostrar algunas de las funciones del micro

RESET: ;primera interrupcion ubicada en la direccion $000

ldi temp, 0 ;instrucción que carga un numero al registro r16
;operandos del r16-r31
rjmp INICIO ;salto relativo a inicio

INICIO: ;etiqueta para definir el programa principal a ejecutar

inc temp ;incremento de r16, valor inicial=0
sts 0x60, temp ;almacenamos este dato en la memoria de datos, direccion 0x60 hex.
lds temp, 0x60 ;leemos lo que esta en esta direccion
add suma, temp ;se hace una suma lógica entre los dos registros, resultado en r17
sts 0x61, suma ;se almacena resultado en memoria de datos, dirección 0x61
rjmp INICIO ;salto relativo a esta etiqueta.

;NOTA:;los comentarios de color verde no son ejecutados por el compilador solo sirven para dar enfasis a una ;operacion en especial.......
;NOTA1:;todos los numros sumados estan en el orden de nuemros hexdeimales por lo que supongo que usted ya ;sabe hacer la conversion.....

No hay comentarios: