Forum: Mikrocontroller und Digitale Elektronik Bankumschaltung von Registern(8051)


von youko (Gast)


Lesenswert?

Hallo,

kann mir bitte einer erklären was eine Bankumschaltung bei Registern ist 
R1-R7?

Also R1-R7 funktionieren nicht PUSH und POP. Aber dafür kann man 
Bankumschaltungen machen?

Was soll das den sein? Habs gegoogelt, aber schlau bin ich auch nicht 
geworden davon.

mfg youko

von Dietrich L. (dietrichl)


Lesenswert?

Beispiel für eine Anwendung:
- das Hauptprogramm benutzt Bank 0
- die Interrupt-Routine benutzt Bank 1
Vorteil: die Interrupt-Routine braucht die Register R0...R7 nicht zu 
retten (Push) und zum Schluss wiederherstellen (Pop), da sie ja ihre 
eigenen Register benutzt. Die Register R0...R7, die das Hauptprogramm 
benutzt, werden nicht angetastet.

Vielleicht hilft das zum Verständnis.

Gruß Dietrich

von guest (Gast)


Lesenswert?

Also Kinders,

das Register PSW schaltet 4 Registersätze (R0-R7) um,
Bankumschaltung bezieht sich auf den Programmspeicherbereich.
Beispielsweise hat der AT89C51RE2 4 Speicherbänke zu 32 kByte, macht 
dann
128K Programmspeicher. 8 Bitter können sonst nur 64k adressieren.

Bye, bye ...

von Bernhard S. (b_spitzer)


Lesenswert?

Bei push und pop mit den Registern muss dann AR0 bis AR7 genommen 
werden. Damit wird dann das entsprechende Register der aktuellen 
Registerbank auf den Stack gelegt bzw. gelesen. Zumindest Raisonance und 
Keil machen das so.

tschuessle
Bernhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.