Zitat Zitat von the_Ghost666
Also, da ist ein Problem, dass alle PICs unter der 18F Version haben. Die haben zwar einen Pointer (IndF), aber es gibt keine Möglichkeit, damit aus dem Flash zu lesen.
sicher? im datenbaltt zum 16f877a steht unter 3.5 "reading flash program memory" schaut zwar nicht ganz so easy aus, ist aber ein code beispiel dabei.

und dann gäbe es ja auch noch ein eeprom, welches man beschreiben könnte (also einfach in asm sagen, dass soll ins eeprom rein) und dann kann man es wieder mit dem pic auslesen.

Zitat Zitat von the_Ghost666
In diesem Fall macht man folgendes:
Eine Unterfunktion liefert die Werte nach dem Zustand eines Zählers zurück.

Lookup:
MOVFW Zähler
ADDWF PCL,F

RETLW 0x55
RETLW 0xA5
da muss man aber gut aufpassen, da das PCL registier nur 8 bit halten kann, die adresse wo er hinspringt aber 13 bit breit ist. d.h. wenn du die tabelle an einer ungünstigen stelle plazierst, spinnt dein programm:

F0: MOVFW Zähler ; zähler = 20d
F1: ADDWF PCL,F ;pcl = F1h + 20d = 105h -> PCL = 05h -> springt irgendwo hin nach oben

das muss man dann einfach in der .lst datei nachschauen wo die funktion steht, oder mit einem org befehl das so anlegen, dass es passt, oder im datenblatt nachschauen und die etwas kompliziertere funktion nehmen, die auch mit solchen sprüngen klar kommt beispiel 5 scheint das richtige zu sein.

SEIDL.