Es macht relativ wenig Sinn am Anfang erst den Port als Ausgang und dann gleich wieder als Eingang zu Schalten.

Bei einlasen des Tasters sollte man nur ein Bit Testen. Das macht man z.B. ANDI r12, #0x10. Der vergleich über CPSE ist zwar möglich, aber gerade für den Anfang eher unüblich. Ich benutzte den Befehl eher selten, gängiger sidn da die bedingten Sprünge über BREQ und BRNE. Das Programm sollte man mal im Simulator als einzelschritt durchlaufen lassen, dann sieht man eigentlich ganz gut was passiert. Zum lernen ist der Simulator wirklich gut. Man vergisßt sonst leich das das Programm mit rasender Geschwindigkeit läuft. Es fehlt hier z.b. ein Entprellen der Taste, wenn das Prgramm mit mehr als etwa 1 kHz laufen soll.