Ooit was ik goed in assemblerprogrammatie op 6502, en speelde daar te pas en te onpas met indirecte adressering, vooral bij het consulteren van tabellen, of het indexeren van buffers.
(bv. IRQ handler van RS-232 ontvangst: schrijf de ontvangen byte weg op het basisadres van de buffer, geïndexeerd met de ontvangstteller, incrementeer de ontvangstteller - that's all)
Maar in de PIC vind ik noch een index-register, noch enige instructie die aan table look-up doet of iets in die zin. Kan het er niet mee, of hebben ze er een heel eigen vocabulaire voor?
(huidige PIC = 16F690)

Zoek eens in de datasheet, staat een heel verhaal over indirecte adressering. De naam die je zoekt is "INDF".
Voor tabellen in een PIC16 vind je hier hier het nodige.

Daar kan ik wat mee, bedankt! Alleen is het intussen bedtijd, keep you posted zodra ik ermee aan de slag ga.

Helaas voor de oude 6502-programmeurs zijn PIC's RISC-processoren, zodat de uitgebreide mogelijkheden met X- en Y-registers niet bestaan en softwarematig moeten worden opgelost. De instructieset van de simpele PIC's (10F-16F) zijn niet voorzien van instructies die gebruik maken van indirecte adressering, de 18F's en hoger kennen die wel: tableread-instructies en de INDF-operand in combinatie met de FSR-registers.

De 16F reeks heeft ook een FSR en INDF register. Dat is dus niet beperkt tot de 18F reeks. De laatste heeft er 3, FSR0,FSR1 en FSR2.

Zie ook de PIC Mid-range reference manual (een lijvig maar handig naslagwerkje van 700 pagina's), Chapter 6.3.4

Mod-edit: Typische knome post verwijderd

[Bericht gewijzigd door Henry S. op (90%)]

2.4 in de datasheet van de 16F690
5.6.1 betsaat niet in de link van Arco. 5.6 gaat over het STATUS register.

[Bericht gewijzigd door hadv op (54%)]

Zoals gezegd, 6.3.4 op blz 6-12...