.include "m32def.inc" ; redefinirea registrilor .def flags = r2 .def temp = r16 .def itmp = r17 .def cnt = r18 .def pos = r19 .cseg ; segmentul de cod .org 0x0000 rjmp RESET ; Salt neconditionat .org INT0addr ; External Interrupt0 Vector Address reti .org INT1addr ; External Interrupt1 Vector Address reti .org INT2addr ; External Interrupt2 Vector Address reti .org OC2addr ; Output Compare2 Interrupt Vector Address reti .org OVF2addr ; Overflow2 Interrupt Vector Address reti .org ICP1addr ; Input Capture1 Interrupt Vector Address reti .org OC1Aaddr ; Output Compare1A Interrupt Vector Address reti .org OC1Baddr ; Output Compare1B Interrupt Vector Address reti .org OVF1addr ; Overflow1 Interrupt Vector Address reti .org OC0addr ; Output Compare0 Interrupt Vector Address rjmp DisplayNext .org OVF0addr ; Overflow0 Interrupt Vector Address reti .org SPIaddr ; SPI Interrupt Vector Address reti .org URXCaddr ; USART Receive Complete Interrupt Vector Address reti .org UDREaddr ; USART Data Register Empty Interrupt Vector Address reti .org UTXCaddr ; USART Transmit Complete Interrupt Vector Address reti .org ADCCaddr ; ADC Interrupt Vector Address reti .org ERDYaddr ; EEPROM Interrupt Vector Address reti .org ACIaddr ; Analog Comparator Interrupt Vector Address reti .org TWIaddr ; Irq. vector address for Two-Wire Interface reti .org SPMRaddr ; Store Program Memory Ready Interrupt Vector Address reti //--------------------------------------------------------------- DisplayNext: ;Subrutina de prelucrare a intreruperii ; comenzi pentru subruta data in flags, SREG ser itmp out PORTC, itmp ; stingim toate indicatoarele LPM itmp, Z+ ; citim codul caracterului din memorie out PORTA, itmp ;afishem noul cod out PORTC, pos ; aprindem indicatoru asr pos brcs end_dispaly ; reinitializam (incepem din nou) ldi ZL, low(Message*2) ; Adressa de inceput a mesajului (in memoria Flash) ldi ZH, High(Message*2) ldi pos, ~(1<