8051 und Speicher

Gast #108923
Lesenswert?

Hallo

Nur ne Frage zur Unwissenheit. Ich habe das mit den verschiedenen
Speichern noch nicht ganz gefressen.
Arbeite mit AT89S52
Wenn ich in der Int.Rotine mit @R0 auf die Speicherzelle #10 zugreife,
ist das auch die gleiche wenn ich in der Timer0 Rotine mit MOV A,10
??

Danke
#108924
Lesenswert?

Schau Dir nochmal das Datenblatt (bzw. Users Guide) an.

Von 00h .. 7Fh ist der SRAM direkt und indirekt zugreifbar.

Von 80h sind direkt nur die SFRs zugreifbar.
Indirekt sind da weitere 128 Byte SRAM, allerdings nur bei den Typen
mit >128 Byte SRAM.

Der Bereich 00h .. 1Fh ist zusätzlich mit den 4 Registerbänken
überlagert, ist nützlich für bestimmte Befehle, die nicht mit Registern
gehen, aber direkt.
Z.B. "XRL 0, #0FF" dreht alle Bits in R0 von Bank 0 um.

Der Bereich 20h ... 2Fh ist mit den 128 Bit Variablen überlagert.
Also z.B. "MOV 20h, #0" löscht gleichzeitig die Bits 00..07.


Peter
Gast #108925
Lesenswert?

Hallo Peter

Dann greife ich mit meinen Befehlen also auf zwei verschiedene Speicher
zu.
Aber wenn ich das sehe ist sind die Bitvariablen und die Reg. Bänke auf
dem direkten Speicher angesidelt.
Wenn ich als auf indirekt umstelle dürfte ich als keine Probleme
haben?

Oder

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren