Hier ein Beispiel. Davon ab Hausaufgaben erzielen keinen Nährwert.
.include"8515def.inc"
;Zuweisung
.def Temp=R17
.def Zahl=R18
.def Pointer=R19
;Initialisierung
ldi Temp,LOW(RAMEND)
out SPL,Temp
ldi Temp,HIGH(RAMEND)
out SPH,Temp
ser Temp
out DDRB,Temp
clr Zahl
clr Temp
clr Pointer
;HP 2-Bit stuffing
ANF:clr Pointer
in Zahl,PIND
S1: mov Temp,Zahl
andi Temp,$03 ;Bei 4-bit $0F
cpi Temp,$00
breq null
cpi Temp,$03 ;Bei 4-bit $0F
breq eins
sbrs Zahl,0
cbi PORTD,0
sbrc Zahl,0
sbi PORTD,0
lsr Zahl
S2: inc Pointer
cpi Pointer,$08
brne S1
rjmp ANF
null: cbi PORTD,0 ;Bei 4-bit noch 2mal cbi
cbi PORTD,0
sbi PORTD,0
lsr Zahl ;Bei 4-bit noch 2mal lsr
lsr Zahl
inc Pointer ; Bei 4-bit noch 2mal inc
rjmp S2
eins: sbi PORTD,0 ; Bei 4-bit noch 2mal sbi
sbi PORTD,0
cbi PORTD,0
lsr Zahl ;Bei 4-bit noch 2mal lsr
lsr Zahl
inc Pointer ;Bei 4-bit noch 2mal inc
rjmp S2
Lesezeichen