Forum: Mikrocontroller und Digitale Elektronik ASM PIC 18 Tableread mit Postincrement


von Jochen S. (jochen_s)


Lesenswert?

Hallo zusammen,
bin ja eigentlich ein AVRler aber der Prof in der FH halt leider 
nicht...
Hier gehts um Asembler für einen PIC 18
Kann mir hier mal einer bestätigen ob ich das richtig verstanden habe:
1
movlw LOW MyStringtable
2
movwf TBLPTRL
3
movlw HIGH MyStringtable
4
movwf TBLPTRH
5
movlw UPPER MyStringtable
6
movwf TBLPTRU
7
TableReadLoop
8
tblrd*+
9
movf TABLAT,w
10
btfsc STATUS,Z
11
bra EndLoop
12
call LCDPutChar
13
goto TableReadLoop
14
EndLoop
15
16
org 0x7000
17
MyStringTable
18
DW “Microchip\0”

Der Tablereadpointer ist ja Postincrement wird also erhöht nachdem der 
Befehl
1
movwf TABLAT,w
ausgeführt wurde oder??
woher weiss der PIC das dann noch, dass er das machen soll??

Danke
Jochen

von Andreas K. (a-k)


Lesenswert?

Jochen S. wrote:

> Der Tablereadpointer ist ja Postdecrement wird also erhöht

Also wat nu?
Decrement: runter.
Increment: rauf.

von Jochen S. (jochen_s)


Lesenswert?

Ja war mir auch gerade aufgefallen war gerade im Bearbeiten als du 
geantwortet hast ...

Hast du denoch ne Lösung für mich???
Jochen

von Meister E. (edson)


Lesenswert?

Hallo Jochen,

die Aussage

>Der Tablereadpointer ist ja Postincrement wird also erhöht nachdem der
>Befehl
>movwf TABLAT,w
>ausgeführt wurde oder??

ist nicht richtig. Nebenbei ist dir noch ein Schreibfehler unterlaufen, 
die Anweisung im Code ist aber richtig: movf TABLAT, w

>woher weiss der PIC das dann noch, dass er das machen soll??

Das teilst du ihm mit dem tblrd*+ Befehl mit. Wenn dieser ausgeführt 
wird, erhält TABLAT den Inhalt der Quell-Adresse und der Tablepointer 
erhöht sich um 1. Die folgende movf-Anweisung bringt den Inhalt von 
TABLAT zur Verarbeitung ins w Register.

>bin ja eigentlich ein AVRler aber der Prof in der FH halt leider
>nicht...

Bitte nicht weinen... ;)

Gruss,
Edson

von Jochen S. (jochen_s)


Lesenswert?

Alles klar da war mein denkfehler Tablat hat den inhalt nicht die 
Adresse des Registers

Jochen
Der wegen sowas nicht anfängt zu heulen ;=)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.