Code:
	 begin:
    rjmp    main                        ; RESET External Reset, Power-on Reset and Watchdog Reset
reti; INT0 External Interrupt 0
reti; PCINT0 External Interrupt Request 0
reti; TIM0_OVF Timer/Counter0 Overflow
reti; EE_RDY EEPROM Ready
reti; ANA_COMP Analog Comparator
reti; TIM0_COMPA Timer/Counter Compare Match A
reti; TIM0_COMPB Timer/Counter Compare Match B
reti; WDT Watchdog Time-out
reti; ADC ADC Conversion Complete
;------------------------------------------------------------------------------
main:
    ldir16,    lo8(RAMEND)         ; Main program start
outSPL,    r16; Set Stack Pointer to top of RAM
cbiDDRB,   3                   ; PORTB.3 als Eingang gesetzt 
cbiDDRB,   4                   ; PORTB.4 als Eingang gesetzt
sbiDDRB,   1                   ; PortB.1 als Ausgang gesetzt
sbiDDRB,   2                   ; PortB.2 Als Ausgang gesetzt
;...                                ; Hier Init-Code eintragen.
;------------------------------------------------------------------------------
mainloop:
    ldir18,    0b00000000
    ldir17,    0b00000000
    ldir16,    0b00000001
    ldir19,    0b00000110
    outPORTB,  r19
incr17
brne    mainloop    
    incr18
brne    mainloop
    rolr16
sbrsr16,    7                   
    rjmp    mainloop
    ldir19,    0b00000000
    outPORTB,  r19    
Start:   
    inr16,    PINB; alle Eingänge in R16 einlessen
sbrcr16,    3
    sbrR21,    0b00000001          ; setze BIT 0 in R19 auf high
cbrr21,    0b00000001
    sbrcr16,    4
    sbrR22,    0b00000001          ; setze BIT 0 in R19 auf high
cbrr22,    0b00000001      
Flanke:   
    comr17; alle Werte im Register 17 negieren
movr18,    r16; kopiere das Register 16 in das Register 17
andr18,    r17; Und verknüfen der beiden Register- Ergebniss der UND-Verknüpfung in r18
movr17,    r16; kopieren den Inhalte des R16 in R17
sbrcr18,    3                   ; überprüfe die Und-Verknüpfung des ersten Port, true = nicht fals = springe
sbrR19,    0b00000001          ; setze BIT 2 in R19 auf high
cbrr19,    0b00000001
    sbrcr18,    4                   ; überprüfe die Und-Verknüpfung des ersten Port, true = nicht fals = springe
sbrR20,    0b00000001          ; setze BIT 2 in R19 auf high
cbrr20,    0b00000001
Und1:
    andR22,    R19
movr23,    R22
Und2:
    andR21,    R20
movr24,    R21
negieren:
    movr25,    r23
movr26,    r24
incr25     
    incr26
und3:
    andr23,    r26
sbrcr23,    0       
    sbiPORTB,  2
    cbiPORTB,  2
und4:
    andr24,    r25
sbrcr24,    0
    sbiPORTB,  1
    cbiPORTB,  1    
    rjmp    Start                       ; Springe zum Mainloop Punkt
 
						
Lesezeichen