Ich hab folgendes Problem mit einem 8051 Mycrocontroler:
Der 8051 ist ein 8-Bit-Microcontroler, d.h. die meisten seiner Register
sind 8 Bit breit und auch der Speicher ist nur byteweise adressierbar.
Der externe Datenspeicher und auch der separate Programmspeicher werden
jedoch über
16-Bit-Adressen adressiert. Dafür steht ein 16-Bit-Register zur
Verfügung, der sogenannte Datenpointer DPTR. Der Programm-Counter PC ist
auch 16 Bit breit, er kann jedoch nicht explizit angesprochen werden.
Dadurch gibt
es nun zumeist 8-Bit-Register aber auch ein einzelnes 16-Bit-Register
(DPTR), welches jedoch auch byteweise adressiert werden kann, nämlich
Low- und Highbyte extra. Wie kann man diese Gegebenheiten in den
Maschinen-Makros umsetzen ? (Geht der GCC nicht davon aus, dass alle in
FIXED_REGISTERS, ... usw. benannten Register dieselbe Breite aufweisen?)
Vielen Dank für eure Hilfe !
mfg
Der 8051 ist ein 8-Bit-Microcontroler, d.h. die meisten seiner Register
sind 8 Bit breit und auch der Speicher ist nur byteweise adressierbar.
Der externe Datenspeicher und auch der separate Programmspeicher werden
jedoch über
16-Bit-Adressen adressiert. Dafür steht ein 16-Bit-Register zur
Verfügung, der sogenannte Datenpointer DPTR. Der Programm-Counter PC ist
auch 16 Bit breit, er kann jedoch nicht explizit angesprochen werden.
Dadurch gibt
es nun zumeist 8-Bit-Register aber auch ein einzelnes 16-Bit-Register
(DPTR), welches jedoch auch byteweise adressiert werden kann, nämlich
Low- und Highbyte extra. Wie kann man diese Gegebenheiten in den
Maschinen-Makros umsetzen ? (Geht der GCC nicht davon aus, dass alle in
FIXED_REGISTERS, ... usw. benannten Register dieselbe Breite aufweisen?)
Vielen Dank für eure Hilfe !
mfg