Hi
Ich sitze gerade an einem Disassembler - ein Programm das Maschinencode zu Assembler übersetzt, damit man diesen umprogrammieren kann. Das Ganze soll für PIC-Microprozessoren laufen.
Jetzt stehe ich vor einem Problem: Der RAM-Speicher der Microprozessoren ist in vier Bänke aufgeteilt und im konkreten Fall der PIC16F18X-Familie hat jede Bank 128 Byte Speicherplatz. Im Datenblatt der Familie sind die Adressen fortlaufend nummeriert - quer über alle Speicherbänke. Die Bank 0 geht von 0x00 bis 0x7F, die Bank 1 von 0x80 bis 0xFF, etc...
Wenn ich diese Adresse jetzt per Assembler ansprechen will: Muss ich auf die Bänke achten? Wenn ich zum Beispiel die Adresse 0x06 aufrufe, wird ja PORTB der Bank 0 angesprochen. Ist die Bank 1 gewählt, greift er auf TRISB zu? Oder muss ich jetzt die Adresse 0x86 ansprechen?
An sich wäre es ja logisch die Bänke berücksichtigen zu müssen. Aber warum sind die Adressen dann im Datenblatt fortlaufend nummeriert?
Ich hoffe, mir kann jemand helfen
Liebe Grüße
Euer Dodo