Danke für die Verbesserung!

Das das Beispiel im Datenblatt steht hab ich versäumt was kein wunder ist weil ich es mir wirklich nicht ganz angeschaut habe. Wir sind in der Schule die wichtigsten Seiten durchgegangen, was nicht viele waren!

Das Beispiel ist ja aber wie auch beschrieben nur möglich wenn ich die Tabelle an eine konstante Stelle im Speicher schreibe. Ich denk das is bei mir kein Problem ich werde trotzdem auf dein Vorschlag eingehen, wenn ich das andere hinbekommen habe.

Jetzt bleibt mir bisher noch eine Frage offen (kann es zZ. nicht testen).

Kann man mit ...

Code:
	CBLOCK	H'20'
	...
		gLEFT		;Linke Tasten
	...
	ENDC

	...
	...

	main
	...
	MOVLW	gLEFT		; Linke Tasten
	MOVWF	PORTB		; auf PORTB ausgeben
	...
... ein Register an PORTB anzeigen lassen? Ich dachte LW steht für konstanter Wert ins Workregister. Ein Register kann sich ja aber aendern (was es bei mir auch macht) und es dafür ja extra den Befehl gibt MOVFW gLEFT ?

wenn es mit MOVLW gehen sollte, dann kann ich in der Tabelle ja weiterhin mit RETLW <register> arbeiten, wenn nicht muss ich wie vorhin gesagt wurde ein GOTO verwenden und darin das Register in das Arbeitsregister kopieren.

Code:
MOVFW gLEFT 
RETURN           ;<---- weil Tabelle mit CALL aufgerufen wurde