Quelques antécédents. J'utilise MPLABx avec un PicKit2 pour programmer différents types de photos. En ce moment c'est le 16F887. J'essaie de m'en tenir à la chaîne d'outils Hi-Tech PICC Lite, mais je suis de plus en plus mécontent de la façon dont certaines choses sont assemblées. Les opérations qui devraient être relativement rapides (compte tenu du cycle d'instruction de 500 ns à 8 MHz) prennent jusqu'à 20 us pour se terminer. J'ai donc commencé à insérer mon propre code ASM pour y faire face.
Cependant, j'ai du mal à comprendre la carte mémoire fournie dans la fiche technique de la page 20.
La mémoire du programme commence à 0005h. Cependant, la page 23 affiche les adresses de fichiers des registres spéciaux, tels que le port A par exemple. L'adresse du port A est indiquée comme "05h".
Je ne sais pas comment faire la différence entre un emplacement mémoire 0005h et le registre à usage spécial situé à 05h. Comment référencer les registres à usage spécial?
J'ai fait une programmation d'assembleur assez étendue pour les anciennes puces HC11, mais c'est ma première aventure dans le codage asm PIC. Toute aide ici serait appréciée.
Ce que Dave a dit, mais je tiens également à souligner que la mémoire du programme commence à 0 et non à 5. Lors d'une réinitialisation, le processeur met le PC à 0 et commence à fonctionner. Lors d'une interruption, le processeur provoque effectivement un appel à l'emplacement 4 et désactive le bit de validation d'interruption globale. L'emplacement de mémoire de programme 5 n'est pas spécial, sinon ce sera la deuxième instruction de la routine d'interruption si vous avez une routine d'interruption.
la source