ASM PIC 18 Tableread mit Postincrement

OP #933587
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
#934712
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren