wait:
*** Lesen des aktuellen Zustands des kompletten Ports***
*** und speichern in "temp" ***
in temp,PIND
*** Vergleiche "temp" mit "alt". Hinter "temp" und ***
*** "alt" verbergen sich Register. In "alt" ist der ***
*** alte Zustand des Port gespeichert. Beim aller- ***
*** ersten durchlauf ist "alt" nicht definiert, also ***
*** wird der Vergleich höchstwahrscheinlich ein ***
*** "ungleich" zum Ergebnis haben. Nach dem "cp" ***
*** Befehl ist das Zero-Flag gesetzt, wenn ***
*** "temp" = "alt". Andernfalls ist es nicht gesetzt.***
cp temp,alt
*** Da wir detektieren wollen, ob sich am Port etwas ***
*** getan hat, springen wir zur Schleife zurück, bis ***
*** "temp" <> "alt" ***
breq wait ;nix los, also warten
*** Damit für den nächsten Durchlauf "alt" definiert ***
*** ist, wird der aktuelle Port-Zustand in dieses ***
*** Register geladen. ***
mov alt,temp ;aktuellen Zustand speichern
;ab hier den Code schreiben, in dem der Port
;ausgewertet wird
rjmp wait
Ausführlicher kann ich jetzt aber nimmer.... ;-)